![](/img/trans.png)
[英]how to print list elements with square brackets in a list - Python I
[英]How to print list elements in newlines using brackets?
假設有一個列表demo_list
:
[u'demo', u'trial']
使用for循環以'\\ n'打印每個元素:
for i in demo_list:
print(i)
它按預期工作:
demo
trial
但是,我想用括號來表達這個循環:
print([ i for i in demo_list])
但它直接在一行中打印整個列表:
[u'demo', u'trial']
對於表達式[print(i) for i in demo_list]
,它表示SyntaxError: invalid syntax
。
我的問題是:
[print(i) for i in demo_list]
什么問題? 任何幫助表示贊賞。
使用列表推導(即括號表達式)生成列表后,如何使用“\\ n” - 帶join
換行符?
In [29]: demo_list = [u'demo', u'trial']
In [30]: print("\n".join([ i for i in demo_list]))
demo
trial
通常,如果您已經有列表,則不需要列表理解。 使用換行符的簡單連接操作可以正常工作。
In [31]: print("\n".join(demo_list))
demo
trial
它被稱為列表理解 。 您不能在列表推導中使用語句 。 很明顯,如果你這樣看:
[assert x for x in lst]
# same as
[print x for x in lst]
在Python 2.7中print
但不是函數 。 所以這是一個SyntaxError
。 但這有效:
l = [1,2,3]
def p(x):
print(x)
map(p, l)
# or
[p(x) for x in l]
參考: 列表理解:為什么這是語法錯誤?
你也可以這樣做:
In [591]: from __future__ import print_function
In [592]: print(*demo_list,sep='\n')
demo
trial
您可以 :
print(*[i for i in demo_list],sep='\n')
要么
print(*demo_list, sep='\n')
如果您使用的是Python2.7
,則應該from __future__ import print_function
。
首先,根據錯誤消息,您沒有使用python 3,而是使用2.7x。 因為你的代碼在python 3中工作。
在python 2.7中,print不是函數,而是一個格式為print [,] *的語句。 (方括號表示可選參數)。
列表理解也是一種創建列表的方法。 您可能會在最后看到[無,無],因此最好將其分配給變量。
將列表理解修改為:
def print_stmt(x):
print x
a = [print_stmt(x) for x in ["demo", "trial"]]
這將打印為:
demo
trial
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.