考虑这个片段
k=[0, 5, 12, 94]
a=max(k)
我打算使用for循环删除列表的最大元素。
for a in k:
k.remove(a)
我预计答案将是
[0,5,12]
但显示的答案是
[5,12]
我错过了什么吗?它适用于while循环。
答案 0 :(得分:0)
如果您要创建一个已完全消除最大值的新列表,请使用list-comprehension选择不等于a = max(k)
的元素。
那是:
k = [0, 1, 6, 6, 6]
a = max(k)
result = [i for i in k if i != a]
这会产生一个包含以下内容的列表:
[0, 1]
顺便说一句,您应该知道在循环的a
子句中分配名称for
会屏蔽您使用a
定义的a = max(k)
。
因此,for循环只是试图从列表中删除所有元素。