0
我寫代碼,從列表中Python的故障與循環
INT分離當我寫這樣沒有工作
list_a = [1,2,3,4,5,6,7,8,'Ahmed','Mustafa',100,103,107]
list_b = []
x = 0
for item in list_a:
if isinstance(item, int):
list_b.append(item)
list_a.pop(x)
x +=1
print (list_a)
print (list_b)
print (x)
和that`s我輸出的代碼
[2, 4, 6, 8, 'Ahmed', 'Mustafa', 103]
[1, 3, 5, 7, 100, 107]
8
並且代碼以這種方式工作
list_a = [1,2,3,4,5,6,7,8,'Ahmed','Mustafa',100,103,107]
list_b = []
list_d = []
x = 0
for item in list_a:
if isinstance(item, int):
list_b.append(item)
else :
list_d.append(item)
x +=1
print (list_a)
print (list_b)
print (list_d)
print (x)
爲什麼那個小故障發生了?
第二種情況下的輸出是什麼? – Reaper
您正在遍歷列表。修改循環內的列表會干擾迭代。有沒有人提到這個問題的重複之一?今天我找不到合適的搜索鍵。 :-( – Prune
)迭代時,您不能「彈出」一個項目,它會更改迭代器的大小。如果您想刪除項目,則必須從副本中刪除。 – Benjamin