【问题标题】:more pythonic version of list iteration function列表迭代函数的更多pythonic版本
【发布时间】:2015-01-14 14:25:41
【问题描述】:

有没有更 Pythonic 的方式来定义这个函数?

def idsToElements(ids):
    elements = []
    for i in ids:
        elements.append(doc.GetElement(i))
    return elements

也许它可能与列表理解。我基本上希望获取一个 id 列表并将它们更改为比定义函数更简单的元素列表。

【问题讨论】:

    标签: python list list-comprehension


    【解决方案1】:

    如果你想要一个列表理解

    def idsToElements(ids):
        return [doc.GetElement(i) for i in ids ]
    

    【讨论】:

      【解决方案2】:

      map() 是一个 Python 内置程序,可以完全满足您的需求。

      def idsToElements(ids):
          return map(doc.GetElement, ids)
      

      here 讨论了 map() 的使用与列表理解的使用。

      这里引用了最流行(和公认的答案)的结论:

      在某些情况下,map 可能在微观上更快(当您不是为此目的制作 lambda,而是在 map 和 listcomp 中使用相同的函数时)。在其他情况下,列表推导可能更快,并且大多数(不是全部)pythonista 认为它们更直接和更清晰。

      【讨论】:

        猜你喜欢
        • 2014-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-30
        • 2012-10-12
        • 2017-12-16
        • 1970-01-01
        • 2020-01-13
        相关资源
        最近更新 更多