从列表中删除min并将其存储在新列表中

时间:2017-09-30 07:52:32

标签: python python-3.x sorting

我收到错误说法:列表分配索引超出范围

my=[3,4,5,8,9,6,2,4,7,5,3,1]

x=[]

for i in range(0,len(my)-1):

    x[i]=min(my)
    print(x)
    my.remove(min(my))
    i=i+1

4 个答案:

答案 0 :(得分:0)

嗯......正如@John Zwinch所说,你不应该修改你正在迭代的内容。而且,如果你只想删除min并将其插入一个新的。你为什么需要循环?

x = []
minimal = min(my)
x.append(minimal)
my.remove(minimal)

上述代码无法实现您的目的吗?

答案 1 :(得分:0)

你可以这样做:

>>> my=[3,4,5,8,9,6,2,4,7,5,3,1]
>>> x=[min(my)]
>>> my.remove(min(my))
>>> my
[3, 4, 5, 8, 9, 6, 2, 4, 7, 5, 3]
>>> x
[1]
>>> 

答案 2 :(得分:0)

您可以尝试以下行 theMin=min(my); x.append(theMin); my.remove(theMin) 我用手机回答你的问题,我找不到断线键,所以希望你知道pythonic!

答案 3 :(得分:0)

查找min的{​​{1}}。将值分配给变量。现在将此值存储在my中。然后,从x列表中删除相同内容。

my

我建议你学会为变量使用有意义的名字。为避免混淆,我没有更改变量的名称。