亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 filter() 過濾“無”輸出 Python

使用 filter() 過濾“無”輸出 Python

桃花長相依 2021-09-01 14:10:40
嘗試過濾“無”輸出時出現錯誤,在 Python 中使用過濾器函數時,這是我的代碼:def my_function(x):if (x % 2 == 0):    x=filter(None, x)    return(x)for x in range(1, 10):    sum=sum+(my_function(x))    print(sum)并且 Python 無法求和,因為無法刪除 None 輸出,因為它正在“添加”這個None2None4None6None8None而不是這個2468
查看完整描述

2 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

這里有幾個錯誤。首先,不要使用sum因為是一個內置的python 函數名。的,filter期待一個迭代與工作和功能。None不是一個函數,它將使用該identity函數(它返回它所采用的相同值)(@bro-grammer 的提示)。由于 x 不是可迭代的,因此您不能對其使用過濾器。


你想檢查是否x是偶數:


def my_function(x):

    if (x % 2 == 0):

        return True

    return False


sumation = 0

for x in range(1, 10):

    if my_function(x):

        sumation += x

print(sumation)

使用實際filter和的另一個選項sum是:


>>> def my_function(x):

...     if (x % 2 == 0):

...         return True

...     return False

... 

>>> sumation = sum(filter(my_function, range(1, 10)))

>>> sumation

20

這樣做的pythonic方法是使用生成器和sum:


>>> sum(x for x in range(1, 10) if x % 2 == 0 )

20


查看完整回答
反對 回復 2021-09-01
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

我猜你試圖以錯誤的方式使用過濾器功能。您可以使用此代碼作為示例:


def my_function(x):

    if (x % 2 == 0):

        return True

    else:

        return False


alist = filter(my_function,list(range(1,10)))

print(sum(alist))

希望能幫助到你


查看完整回答
反對 回復 2021-09-01
  • 2 回答
  • 0 關注
  • 311 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號