代码之家  ›  专栏  ›  技术社区  ›  Tomasz Wysocki

是否可以使用map将函数应用于参数列表并忽略结果?

  •  3
  • Tomasz Wysocki  · 技术社区  · 15 年前

    您认为可以使用map作为参数列表的应用函数而忽略结果吗?

    map(foo, bar)
    

    对于正在阅读代码的人来说,它可能是一个bug。

    3 回复  |  直到 15 年前
        1
  •  8
  •   Mark Byers    15 年前

    当您想要得到结果时,使用map是将函数应用于列表中每个项的一种非常好的方法,尽管许多人发现将其作为列表理解或生成器来编写更为清晰:

    result = [foo(x) for x in bar]
    

    但是,如果您不打算使用函数调用的结果,并且只对副作用感兴趣,那么应该使用过程样式来编写:

    for x in bar:
        foo(x)
    
        2
  •  6
  •   Ignacio Vazquez-Abrams    15 年前

        3
  •  0
  •   A T    11 年前

    下面是我如何把它拼凑起来的:

    from itertools import imap, ifilterfalse
    
    tuple(ifilterfalse(None, imap(lambda x: x+1, range(10))))
    

    tuple 将始终为空(给定此输入)。