亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在迭代列表時附加到列表是否正確?

在迭代列表時附加到列表是否正確?

慕的地8271018 2021-07-05 12:08:07
我看到我可以在迭代時附加到列表lst = [1]for i in lst:    lst.append(i+1)    print(i)我可以使用這種行為嗎?還是氣餒?我注意到不能說同樣的setlst = set([1])for i in lst:    lst.add(i+1)    print(i)錯誤:大小在迭代過程中發生了變化。
查看完整描述

3 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

允許在迭代時追加到列表中,因為列表是有序的,因此迭代期間追加的行為是可預測的。這對于在隊列中的所有其他任務都完成后重試失敗的任務非常有用,例如:


tasks = ['task1', 'task2']

for task in tasks:

    if task == 'task1':

        tasks.append('task1-retry')

    print(task)

這輸出:


task1

task2

task1-retry

但是集合是沒有順序的,因此在順序迭代的同時將一個項目添加到一個集合中會產生不確定的效果,因此是不允許的。


查看完整回答
反對 回復 2021-07-21
?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

我認為它不會起作用,因為如果列表大小改變,那么(?)循環項目也應該改變,例如它可能會變成無限循環或內存訪問沖突。最好這樣做:


list=[1,2,7,5]

list2=[]

for i in list:

  list2.append(i+1)

  print(i)

list=list+list2


查看完整回答
反對 回復 2021-07-21
  • 3 回答
  • 0 關注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號