我在python中有这个列表
[[20.0, 'Harsh'], [20.0, 'Beria'], [19.0, 'Varun'], [19.0, 'Kakunami'], [21.0, 'Vikas']]
我想删除此列表中的所有最小值,因此这是我的代码
g=min(listz)[0];
for value in listz:
if value[0]==g:
listz.remove(value);
print(value," ",g)
但遗憾的是,即使Varun
也具有相同的值,此代码也会删除Kakunami
。问题是什么?
答案 0 :(得分:2)
您可以使用filter
来执行此操作。
g = min(listz)[0];
updated_list = filter(lambda x: x[0] > g, listz)
答案 1 :(得分:2)
new_list = [m for m in listz if m[0]>g]
答案 2 :(得分:1)
给出的答案没有解释您的代码的基本问题,即: 你不应该试图改变你正在循环的列表。