2
list1 = ['inception', 'dream', 'movie']
list2 = list1
list1.append(list2)
list1
如果我運行在終端上的代碼,試圖在自己的列表中追加一個列表...會發生什麼?
['inception', 'dream', 'movie',[...]]
是輸出。如果我在自己的列表中追加列表會發生什麼?
list1 = ['inception', 'dream', 'movie']
list2 = list1
list1.append(list2)
list1
如果我運行在終端上的代碼,試圖在自己的列表中追加一個列表...會發生什麼?
['inception', 'dream', 'movie',[...]]
是輸出。如果我在自己的列表中追加列表會發生什麼?
列表元素只是對其他Python值的引用。您已將列表本身的參考存儲在列表中。
列表表示反映了這一點;而不是拋出一個錯誤或填充您的終端無限嵌套表示相同的列表,Python顯示[...]
表示遞歸結構。
這同樣適用於字典:
>>> d = {}
>>> d['d'] = d
>>> d
{'d': {...}}
或標準容器類型的任意組合。它不限於僅僅一個電平或一個單一的參考任一:
>>> l = ['foo', 'bar', {}]
>>> l[-1]['spam'] = l
>>> l[-1]['eggs'] = l
>>> l
['foo', 'bar', {'eggs': [...], 'spam': [...]}]
的[...]
或{...}
參考只是指示打印含量會導致遞歸。