我是Python新手,我正在通过阅读“Head first Python”一书来学习它。当我尝试打印嵌套列表时出现错误:
而我的疑问是,当我要打印嵌套列表,如图书中
电影=“圣杯”,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']]
-
请帮帮我,我有t我可以想到的一切。提前致谢。
即使你不知道这是“列表展平”,这是学习Python的一个非常普遍的问题。奇怪的是,似乎只是出现在新手问题上;在教程之外,如果你不想要嵌套列表,为什么你要制作一个? – msw
我还没有看到你提到的那本书,但我从来没有必须永远使用'isinstance',并且对于那些在Java中甚至没有意义的反模式的新手都深感怀疑。 – msw