簡體   English   中英

為什么用python中的map()函數列表理解可以返回None

[英]Why list comprehension with map() function in python can return None

>>> counters = [1,2,3,4]
>>> 
>>> [print(i, end=', ') for i in map(inc, counters)]

4, 5, 6, 7, [None, None, None, None]

為什么此代碼打印[None, None, None, None]

因為print返回None

因此,打印完成( 4, 5, 6, 7, ),然后返回列表推導( [None, None, None, None]

你想要做的是使用join:

>>> ', '.join(str(i) for i in map(inc, counters))
'4, 5, 6, 7'

或者使用printsep參數 (我現在沒有python3但這樣的東西:)

print(*map(inc, counters), sep=', ')

print是一個函數,但它返回None ,這就是為什么你沒有

做這個

In [3]: [i for i in map(abs, counters)]
Out[3]: [1, 2, 3, 4]

In [7]: a = print(1234)
1234

In [11]: print(a)
None

[print(i, end=', ') for i in map(inc, counters)]

因此,當執行此print打印i 1,2,3,4,然后每次list comprehension返回其輸出是None因此無,無,無,無

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM