Python 3.x 无法对Python 3进行排序

Python 3.x 无法对Python 3进行排序,python-3.x,Python 3.x,尝试对手动给定的数字进行排序。 给出的数字为:[1,10,8,9,4,6,5,2,7] 通过首先在整个列表中找到最小的元素,然后从原始列表(列表0)中删除并添加/追加到新列表(列表最终)进行排序。需要[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<

尝试对手动给定的数字进行排序。 给出的数字为:[1,10,8,9,4,6,5,2,7] 通过首先在整个列表中找到最小的元素,然后从原始列表(列表0)中删除并添加/追加到新列表(列表最终)进行排序。需要[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)
list_0=[1,10,8,9,4,6,5,2,7]
列表_final=[]
小=100
对于列表_0中的i:
对于范围内的j(len(列表_0)):

如果我我认为你应该这样做:

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

好的,我用了我的电话,想出了这个密码。 我有点忙,但我希望这对你有帮助。我也提出了一个建议

我会包括你的问题,并给出更好的解决方案

现在我很忙

这是密码

    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)
list_O=[1,10,8,9,4,6,5,2,7]
列表_final=[]
索引=0
#最小项目=最小(列表)

而index则是在您的帮助下的最终代码。谢谢

@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]

好的。。。我仍然在你的问题上

请尝试此代码

你会得到想要的结果

    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)

选择排序的一个更具Python风格的版本。这只是对的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]

永远不要更改您正在迭代的列表!(
list_0
在本例中)。这几乎总是以眼泪结束。为什么不直接使用python的排序呢?在python中永远不会这样做。您为什么不使用排序(列表0)
?还有,“编译器错误”?@hiroprogator谢谢你的建议。sorted()很好,但我试图自己完成内部过程。@hop compile error是错误的标记mate.sry!分类是一门艺术!有很多算法。您正在尝试实现哪一个?输出非常精确,但我尝试在没有任何预定义函数帮助的情况下执行。此“sorted()函数”在内部执行什么类型的排序?list_O=[1,10,8,9,4,6,5,2,7]list_final=[]index=0#min_item=min(list_O)而index