0

私は Python の初心者で、「Head first Python」という本を読んで学習しています。

そして、私の疑問は、ネストされたリストを印刷したいときに、本に示されているように正しい出力が得られないことです

movies = [「聖杯」、1975 年、「テリー ジョーンズ & テリー ギリアム」、91、[「グラハム チャップマン」、[「マイケル ペイリン」、「ジョン クリース」、「テリー ギリアム」、「エリック アイドル」、「テリージョーンズ"]]]

-- (本に記載されているコード)

>>> for each_item in movies:
if isinstance(each_item, list):
    for nested_item in each_item:
        if isinstance(nested_item, list):
            for deeper_item in nested_item:
                print(deeper_item)
        else:
           print(nested_item)
else:
    print(each_item)

-- (ブックに出力)

The Holy Grail
1975
Terry Jones & Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones

-- (しかし、以下の出力しか得られませんでした)

Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
['Graham Chapman', ['Michael Palin', 'John Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]

--

助けてください、考えられることはすべて試しました。前もって感謝します。

4

4 に答える 4

1

示されているコードは、インデント エラーのため実行されません。最初の if ステートメントはインデントする必要があります。(表示されている結果が得られた場合は、この Web サイトのインデントを調整せずにカット アンド ペーストした可能性があります)。

movies = ["The Holy Grail", 1975, "Terry Jones & Terry Gilliam", 91, ["Graham Chapman", ["Michael Palin", "John Cleese", "Terry Gilliam", "Eric Idle", "Terry Jones"]]]

for each_item in movies:
    if isinstance(each_item, list):
        for nested_item in each_item:
            if isinstance(nested_item, list):
                for deeper_item in nested_item:
                    print(deeper_item)
            else:
                print(nested_item)
    else:
        print(each_item)

Pythonプロンプトの後に貼り付けるとうまくいきます。出力は、最後の 2 行のインデントがこれよりも 4 スペース少ない場合に得られるものです。

print(nested_item) も 3 つのスペースだけインデントされ、残り (インデントされている場合) は 4 つのスペースを使用します。

于 2012-05-23T05:27:05.777 に答える
0

I get What you want by using your code. Please Check the indent.

for item in movies:
    if isinstance(item,list):
        for nested_item in item:
            if isinstance(nested_item,list):
                for deep_item in nitem:
                    print deep_item
            else:
                print nested_item
    else:
        print item
于 2012-05-23T05:15:38.343 に答える