无法对Python进行排序3
试图对手动给出的数字进行排序。 给出的数字是:[1,10,8,9,4,6,5,2,7] 要通过在整个列表中找到第一个最小元素进行排序,然后从原始列表(list_0)中删除并添加/附加到新列表(list_final).Need [1,2,4,5,6,7,8,9,10]作为输出,我在哪里出错了?无法对Python进行排序3
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]
选择排序的一个更Python版本。这只是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]
好吧,我用我的手机,并提出了这个代码。 我有点忙,但我希望这可以帮助你。我也想出了一个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)
这里有一个形象:
list_O = [1,10,8,9,4,6,5,2,7] list_final = [] 索引= 0 #min_item =分钟(list_O) 而指数
最后的代码后,所有的帮助guys.Thank你!
@hop @andrepogg @Godson狂喜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)
OUTPUT:
[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)
永远不会改变你正在迭代的列表! (在这种情况下为'list_0')。这几乎总是会以泪结束。为什么不只是使用Python的排序呢? –
你永远不会用Python这样做。有没有理由不使用'sorted(list_0)'?另外,“编译器错误”?? – hop
@hiroprotagonist感谢您的建议。排序()很好,但试图通过我自己来完成内部过程。 – CodeManga