gpt4 book ai didi

python - 使用 filter() 过滤 'None' 输出 Python

转载 作者:行者123 更新时间:2023-11-28 22:14:12 24 4
gpt4 key购买 nike

我在尝试过滤“无”输出时遇到错误,在 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 输出,因为它正在“添加”这个

None
2
None
4
None
6
None
8
None

不是这个

2
4
6
8

最佳答案

这里有几个错误。首先,不要使用 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)

使用实际 filtersum 的另一个选项是:

>>> 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

关于python - 使用 filter() 过滤 'None' 输出 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53532122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com