无法对Python 3

时间:2017-01-18 15:59:45

标签: python-3.x

尝试对手动给出的数字进行排序。 给出的数字是:[1,10,8,9,4,6,5,2,7] 通过在整个列表中首先找到最小元素进行排序,然后从原始列表中删除(list_0)并添加/追加到新列表(list_final)。需要[1,2,4,5,6,7,8,9] ,10]作为输出,我哪里出错?

list_0=[1,10,8,9,4,6,5,2,7]
list_final=[]
small=100
for i in list_0:
    for j in range(len(list_0)):
        if i<small:
            small=i
            list_0.remove(small)
            list_final.insert(j,small)
print("original list :",list_0)
print("sorted list",list_final)

OUTPUT即将来临:

原始清单:[10,8,9,4,6,5,2,7]

排序列表[1]

5 个答案:

答案 0 :(得分:1)

最后的代码在你所有的帮助之后。谢谢你!

@hop @andrepogg @Godson Rapture Chijioke @hiro主角

list_0=[1,10,8,9,4,6,5,2,7]
list_final=[]
small=0
for i in range(len(list_0)):
    small=min(list_0)
    list_final.append(small)
    list_0.remove(small)
print (list_final)

输出:

[1,2,4,5,6,7,8,9,10]

答案 1 :(得分:0)

我认为你应该这样做:

list_0 = [1,10,8,9,4,6,5,2,7]
list_final = sorted(list_0)

答案 2 :(得分:0)

好的,我用过我的手机并想出了这段代码。 我有点忙,但我希望这会对你有所帮助。我也想出一个python list tutorial very soon.

我将包括您的问题并提供更好的解决方案。

现在很忙。

这是代码。

    list_O=[1,10,8,9,4,6,5,2,7]
    list_final=[]
    index=0
    #min_item=min(list_O)
    while index<len(list_O):
        min_item=min(list_O)
        list_final.append(min_item)
        list_O.remove(min_item)
        index+=1
    print (list_final)

这是一张图片:

The screenshot of the solution.

答案 3 :(得分:0)

好的......我还在你的问题上......

尝试使用此代码。

您将获得所需的结果

    list_O=[1,10,8,9,4,6,5,2,7]
    list_final=[]
    for i in list_O:
        for j in range(len(list_O)):
            min_item=min(list_O)
            list_final.append(min_item)
            list_O.remove(min_item)
    print (list_final)

答案 4 :(得分:0)

更多pythonic版本的选择排序。这只是selection sort code from wikipedia的python翻译。那里的代码很好评论......

lst = [1, 10, 8, 9, 4, 6, 5, 2, 7]

for i in range(len(lst)):
    min_index = lst.index(min(lst[i:]))   # find the next min_index > i
    if min_index != i:
        lst[i], lst[min_index] = lst[min_index], lst[i]  # swap

print(lst)  # [1, 2, 4, 5, 6, 7, 8, 9, 10]