求助关于filter中的return
def odd(x):return x%2
>>> temp = range(10)
>>> show = filter(odd,temp)
>>> list(show)
想问一下这里的return x%2 返回后是不是让odd函数变为 0 和1 了吗? 为什么最后的show会出现13579 本帖最后由 傻眼貓咪 于 2021-10-23 08:13 编辑
def odd(x):
return x%2
temp = range(10)
show = filter(odd,temp) # filter 顾名思义过滤/筛选,odd 为函数,temp 为参数,运行 odd 筛选所有参数,如果真 True(除了 0,所有数字都是真),则输出值
list(show)
另外一种写法:
static/image/hrline/line3.pngdef odd(x):
return x%2
temp = range(10)
show = list()
for i in temp:
if odd(i): # filter 用法类似于 if 用法
show.append(i)
print(show) 本帖最后由 kogawananari 于 2021-10-22 22:18 编辑
show = filter(odd,temp)
等价于
show = (i for i in temp if odd(i))
如果需要odd的结果而不是过滤
则应该用show = map(odd,temp)
届时 等价于
show = (odd(i) for i in temp)
页:
[1]