-3
列表中的一個元素考慮這個片段刪除從使用循環
k=[0, 5, 12, 94]
a=max(k)
我打算刪除最大元素使用for循環列表。
for a in k:
k.remove(a)
我希望答案是
[0,5,12]
但顯示的答案是
[5,12]
我缺少的東西?它適用於while循環。
列表中的一個元素考慮這個片段刪除從使用循環
k=[0, 5, 12, 94]
a=max(k)
我打算刪除最大元素使用for循環列表。
for a in k:
k.remove(a)
我希望答案是
[0,5,12]
但顯示的答案是
[5,12]
我缺少的東西?它適用於while循環。
如果您想要創建一個新的列表,其中最大值已被完全消除,請使用列表理解選擇不等於a = max(k)
的元素。
即:
k = [0, 1, 6, 6, 6]
a = max(k)
result = [i for i in k if i != a]
這導致包含列表:
[0, 1]
順便說一句,你應該知道,循環的for
子句中指定的名稱a
掩蓋了您用a = max(k)
定義的a
。
因此,for循環只是試圖從列表中刪除所有元素。
在變異時遍歷列表會導致麻煩;只要立即'k.remove(a)'。爲什麼要爲''循環的要求? –
謝謝你的回覆。我只是在探索各種可能性。 –
如果重複最大元素,我使用了循環。例如。 ''6'in'[1,2,6,6,6]' –