2011-08-28 16 views
13

私は、Pythonスクリプトのいくつかの奇妙な出力を得た:リスト内の[...](省略記号)はPythonの意味ですか?

[[(7, 6), (6, 4), (7, 2)], [...], [...], [...], [(7, 6), (8, 4), (7, 2)], [...], [...], [...], [...], [...], [...], [...]] 

出力はタプルのリストのリストでなければなりません。しかし、私はなぜ[...]が現われるのか分かりません。

[...]とはどういう意味ですか?

空のリストは[]であるとは思いません。これらは多分重複ですか?

+2

コードとはなんですか? –

+0

これは役に立ちます - http://stackoverflow.com/questions/118370/how-do-you-use-the-ellipsis-slicing-syntax-in-python – arunkumar

+0

@arunkumar: '省略形'の 'repr'は' "省略記号"。 –

答えて

25

これは再帰的な参照です。あなたのリストにはそれ自体が含まれているか、少なくとも何らかのサイクルがあります。

例:

x = [] 
x.insert(0, x) 
# now the repr(x) is '[[...]]'. 

内蔵のリストのreprこの状況を検出し、それが無限再帰につながるので、(それは通常どおり)サブリストに再帰しようとしません。

y, z = [], [] 
x = [y, z] 
y.insert(0, z) 
z.insert(0, y) 
# looks the same as it would if y contained y and z contained z. 

のでreprが本当にリストのための完全なシリアル化形式ではありません。...は必ずしも呼ばれるリストを教えてくれないこと

は注意してください。

なぜあなたがそれらを入手しているのか:われわれは霊感ではなく、コードを見なければ問題を解決できません。

関連する問題