Python:for循环在print()中

新手上路,请多包涵

我有一个关于 Python (3.3.2) 的问题。

我有一个清单:

 L = [['some'], ['lists'], ['here']]

我想使用 print() 函数打印这些嵌套列表(每一个在新行上):

 print('The lists are:', for list in L: print(list, '\n'))

我知道这是不正确的,但我希望你能明白。你能告诉我这是否可能吗?如果是,如何?

我知道我可以这样做:

 for list in L:
    print(list)

但是,我想知道是否还有其他选择。

原文由 SomeOne 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 779
2 个回答

应用整个 L 对象作为单独的参数:

 print('The lists are:', *L, sep='\n')

通过将 sep 设置为换行符,这将在新行上打印所有列表对象。

演示:

 >>> L = [['some'], ['lists'], ['here']]
>>> print('The lists are:', *L, sep='\n')
The lists are:
['some']
['lists']
['here']

如果您 必须 使用循环,请在列表理解中这样做:

 print('The lists are:', '\n'.join([str(lst) for lst in L]))

这将省略 'The lists are:' 之后的换行符,您也可以在这里始终使用 sep='\n'

演示:

 >>> print('The lists are:', '\n'.join([str(lst) for lst in L]))
The lists are: ['some']
['lists']
['here']
>>> print('The lists are:', '\n'.join([str(lst) for lst in L]), sep='\n')
The lists are:
['some']
['lists']
['here']

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 3.0 许可协议

这有效:

 >>> L = [['some'], ['lists'], ['here']]
>>> print("\n".join([str(x) for x in L]))
['some']
['lists']
['here']
>>>

原文由 user2555451 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏