[英]Where did the "None"s come from? | Python map() function
我寫了一個使用 map() function 的小代碼:
def function(a):
if a % 2 == 0:
return a
else:
pass
x = map(function, (1,3,2,5,6))
print(set(x))
它應該返回提供的每個偶數,如果它是奇數,我不希望它返回任何東西,所以我輸入“通過”。 但是,當我運行它時,output 是這樣的:
{2, 6, 無}
這很奇怪,我不確定“None”來自哪里,當我更改用於將 X 打印到 list() 或 tuple() 的 set() function 時,output 如下所示:
[無,無,2,無,6] 或(無,無,2,無,6)
我不確定這里發生了什么,奇數不應該返回任何東西,而是它仍然作為“無”存在。 有沒有辦法解決這個問題? 最初是什么原因造成的?
每個 Python function 都會返回一些東西。 如果沒有執行return
語句,或者return
語句沒有表達式,則 function 返回None
。 這就是你的None
的來源。
如果您想按某些標准過濾值列表,請編寫返回 True 或 False(或等效項)的 function,並使用內置filter
:
>>> def isEven(a):
... return a % 2 == 0
>>> [*filter(isEven, (1,3,2,5,6))]
[2, 6]
[*generator]
將生成器轉換為列表。 這也適用於集合,使用{*generator}
,但不適用於元組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.