【问题标题】: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 认为它们更直接和更清晰。