Python 排序列表插入

Python sorted list insertion

我需要帮助完成 python 中的练习,我必须填写预先存在的代码。

该函数接受一个整数和一个排序列表,它插入值 a 然后 returns 新列表,我必须用正确答案替换点

看起来像这样:

def insert(a, tab):
    l = list(tab)
    l.append(a)
    i = ...
    while a < ... :
        l[i+1] = ...
        l[i] = a
        i = ...
    return l

>>> insert(3,[1,2,4,5])
[1, 2, 3, 4, 5]

感谢您的帮助。

从上面的答案中汲取灵感,我会说一些也复制列表而不是覆盖它的内容,如下所示

def insert_and_sort(a, tab):
    newtab = list(tab)
    newtab.append(a)
    sort(newtab)
    return newtab
def insert(a, tab):
    l = list(tab)
    l.append(a)
    i = len(l) - 2
    while a < l[i] and i >= 0:
        l[i+1] = l[i]
        l[i] = a
        i -= 1
    return l

免责声明 - 这里没有新内容。仅供参考,使变量更具描述性并简化代码。 (供以后阅读,或我自己

def insert(x, lst):
    ''' lst is a sorted list'''
    ''' bubble sort - '''
    
    lst.append(x)   # to the end
    
    i = len(lst) - 2
    
    while i >=0 and lst[i] > x:
        lst[i+1], lst[i] = lst[i], x
        i -= 1
    return lst
  

insert(3,[1,2,4,5])
[1, 2, 3, 4, 5]

很简单,我们甚至可以只替换其中一个 ...:

def insert(a, tab):
    l = list(tab)
    l.append(a)
    i = ...
    while a < (l.sort() or a) :
        l[i+1] = ...
        l[i] = a
        i = ...
    return l

正在测试:

>>> insert(3,[1,2,4,5])
[1, 2, 3, 4, 5]