为什么在使用过滤器和地图功能后得到空白列表
Why getting blank list after using filter and map function
#程序映射过滤生成一个元素为偶数立方的列表
#function for even number to use in filter
def even(num):
if num%2==0:
return num
def cube(num):
return num**3
a=range(1,10)
print(list(a))
b=filter(even,a)
print(list(b))
c=map(cube,b)
print(list(c))
b
是一个生成器。当您使用 list()
构造函数将其转换为 list
时,它已耗尽。如果您注释掉以下行:
print(list(b))
您的代码将按预期工作。
作为旁注,您可以将所有内容写在一行中:
list(map(lambda x: x**3, filter(lambda x: x%2==0, a)))
(但我想你已经知道了)。
输出:
[8, 64, 216, 512]
#程序映射过滤生成一个元素为偶数立方的列表
#function for even number to use in filter
def even(num):
if num%2==0:
return num
def cube(num):
return num**3
a=range(1,10)
print(list(a))
b=filter(even,a)
print(list(b))
c=map(cube,b)
print(list(c))
b
是一个生成器。当您使用 list()
构造函数将其转换为 list
时,它已耗尽。如果您注释掉以下行:
print(list(b))
您的代码将按预期工作。
作为旁注,您可以将所有内容写在一行中:
list(map(lambda x: x**3, filter(lambda x: x%2==0, a)))
(但我想你已经知道了)。
输出:
[8, 64, 216, 512]