Python可以';t从嵌套列表中删除值

Python可以';t从嵌套列表中删除值,python,list,Python,List,我已经用python获得了此列表 [[20.0,'Harsh']、[20.0,'Beria']、[19.0,'Varun']、[19.0,'kakumi']、[21.0,'Vikas']. 我想从这个列表中删除所有最小值,这是我的代码 g=min(listz)[0]; for value in listz: if value[0]==g: listz.remove(value); print(value," ",g) 但不幸的是,此代码仅删除Va

我已经用python获得了此列表
[[20.0,'Harsh']、[20.0,'Beria']、[19.0,'Varun']、[19.0,'kakumi']、[21.0,'Vikas'].
我想从这个列表中删除所有最小值,这是我的代码

g=min(listz)[0];
for value in listz:
    if value[0]==g:
        listz.remove(value);    
        print(value," ",g)

但不幸的是,此代码仅删除
Varun
,即使
kakumi
也具有相同的值。问题出在哪里?

您可以使用
过滤器来执行此操作

g = min(listz)[0];
updated_list = filter(lambda x: x[0] > g, listz)

您可以使用
filter
来执行此操作

g = min(listz)[0];
updated_list = filter(lambda x: x[0] > g, listz)

给出的答案没有解释代码的基本问题,即:
您不应该尝试改变正在循环的列表。

给出的答案没有解释代码的基本问题,即:
你不应该尝试改变你正在循环的列表。

Varun
被删除时,
kakumi
将取代它,因此
kakumi
永远不会被检查,因为迭代将移动到
Varun
(现在
kakumi
)之后的下一个项目,即
Vikas
@MosesKoledoye哦,好的,那么我该如何解决这个问题呢?当
Varun
被删除时,
kakumi
将取代它,所以
kakumi
永远不会被检查,因为迭代将继续进行
Varun
(现在
kakumi
)之后的下一项,即
Vikas
@MosesKoledoye哦,好的,那么我该如何解决这个问题呢?