我注意到一些非常奇怪的东西。我试图看看它出错的地方,并意识到由于某种原因,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],但这只是告诉您回头看看现在有额外卡片的卡组。当我们添加另一张卡时,我们现在有两个额外的。这有帮助吗? –