Python:append()方法不允许插入排序?

时间:2017-08-06 17:48:40

标签: python

我的代码---->

A = [17, 15, 5, 20, 99, 100]

left = []
right = []
left.append(A[ : len(A)/2   ])
#right.append(A[ len(A)/2  : ])

print("Left Before Sort : {l}".format(l=left))

for j in range(1, len(left)):
        key = left[j]
        i = j - 1
        while (i >= 0 and left[i] > key):
            left[i+1] = left[i]
            i -= 1
        left[i+1] = key




print("Left After Sort {l}".format(l=left))

为什么左边没有排序?我尝试了不同的命名......但输出相同。

1 个答案:

答案 0 :(得分:3)

问题是你要在列表中追加列表。

试试这个: A = [17,15,5,20,99,100]

left=[];right=[]
left = A[ : len(A)/2   ]           # Here I made change
#right.append(A[ len(A)/2  : ])

print "Left Before Sort : ",left

for j in range(len(left)):
        key=left[j]
        i=j-1
        while (i>=0 and left[i]>key):
            left[i+1]=left[i]
            i -=1
        left[i+1]=key




print "Left After Sort ",left

输出

Left Before Sort :  [17, 15, 5]
Left After Sort  [5, 15, 17]

如果你真的想追加,那么尝试逐个追加每个元素:

for i in A[:len(A)/2]:
    left.append(i)