我注意到一些非常奇怪的東西。我試圖看看它出錯的地方,並意識到由於某種原因,nest[0]
列表在循環中途不斷變化。For循環通過嵌套列表
>>> nest = [['prefix'],['line 1'],['line 2']]
>>> for part in nest[1:]:
... list = nest[0]
... list += part
... print list
,我得到的輸出是:
['prefix', 'line 1']
['prefix', 'line 1', 'line 2']
然而,我需要的是:
['prefix', 'line 1']
['prefix', 'line 2']
有人可以解釋爲什麼出現這種情況?我可能會做一些非常愚蠢的事情。
謝謝。代碼工作。 我不明白的是爲什麼我的不工作。所以當我嘗試'list = ['prefix']'時,我可以看到它做到了我想要的。爲什麼指向同一個對象會改變它? – Rohit
編輯後:感謝您的解釋。我仍然試圖圍繞如何解決我的問題。你是否說你的例子中'nest [0]'是'Deck()'對象? – Rohit
你的「巢穴[0]」是一副撲克牌。調用list = nest [0]只是告訴我們看看甲板(裏面有'前綴'這個單詞),然後將這個查找存儲在標籤爲「list」的地方。我們從來沒有在這裏創建一副新的牌或新的名單。所以當你追加部分列表時,你正在向卡組添加一張新卡。在下一次迭代中,您再次調用list = nest [0],但這只是告訴您回頭看看現在有額外卡片的卡組。當我們添加另一張卡時,我們現在有兩個額外的。這有幫助嗎? –