2
list1 = ['inception', 'dream', 'movie']
list2 = list1
list1.append(list2)
list1

このコードを端末で実行すると、

['inception', 'dream', 'movie',[...]]

出力です。リストを独自のリストに追加するとどうなりますか?

4

1 に答える 1

9

リスト要素は、他の Python 値への単なる参照です。リスト内にリスト自体への参照を保存しました。

リスト表現はこれを反映しています。エラーをスローしたり、無限にネストされた同じリストの表現で端末を埋めたりする代わりに、Python は[...]再帰構造を示します。

同じことが辞書にも当てはまります。

>>> d = {}
>>> d['d'] = d
>>> d
{'d': {...}}

または標準コンテナ タイプの任意の組み合わせ。1 つのレベルまたは 1 つの参照に限定されるわけではありません。

>>> l = ['foo', 'bar', {}]
>>> l[-1]['spam'] = l
>>> l[-1]['eggs'] = l
>>> l
['foo', 'bar', {'eggs': [...], 'spam': [...]}]

[...]or参照は{...}、コンテンツを印刷すると再帰が発生することを示しているだけです。

于 2013-10-06T08:47:02.577 に答える