【问题标题】:Why getting blank list after using filter and map function为什么使用过滤器和映射功能后得到空白列表
【发布时间】:2021-12-30 06:31:02
【问题描述】:

#程序映射和过滤以创建一个列表,其元素是偶数的立方体

#用于过滤的偶数函数

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

【问题讨论】:

    标签: python dictionary filter


    【解决方案1】:

    b 是一个生成器。当您使用 list() 构造函数将其转换为 list 时,它已用尽。如果您注释掉以下行:

    print(list(b))
    

    您的代码将按预期工作。

    作为旁注,您可以将所有这些写在一行中:

    list(map(lambda x: x**3, filter(lambda x: x%2==0, a)))
    

    (但我想你已经知道了)。

    输出:

    [8, 64, 216, 512]
    

    【讨论】:

      猜你喜欢
      • 2019-05-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2023-03-25
      • 2020-12-12
      • 1970-01-01
      • 2011-08-20
      • 2023-02-22
      相关资源
      最近更新 更多