更多pythonic版本的列表迭代函数

时间:2015-01-14 14:25:41

标签: python list list-comprehension

是否有更多Pythonic方式来定义此功能?

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

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

2 个答案:

答案 0 :(得分:29)

如果列表理解是你想要的全部

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

答案 1 :(得分:15)

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

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

使用map()与列表推导的使用进行了讨论here

这里引用了最受欢迎(和接受的答案)的结论:

  在某些情况下,

地图可能在显微镜下更快(当你没有为此目的制作lambda,但在map和listcomp中使用相同的函数时)。在其他情况下,列表推导可能会更快,而且大多数(并非所有)pythonist认为它们更直接,更清晰。