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

more pythonic version of list iteration function

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

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

也许可以通过列表理解来实现。我基本上是想获取一个 id 列表,并将它们更改为一个元素列表,而不是定义一个函数。

如果列表理解就是你想要的

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

map() 是一个 Python 内置功能,它完全满足您的需求。

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

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

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

map may be microscopically faster in some cases (when you're NOT making a lambda for the purpose, but using the same function in map and a listcomp). List comprehensions may be faster in other cases and most (not all) pythonistas consider them more direct and clearer.