【发布时间】:2019-03-05 14:15:21
【问题描述】:
我有一个关于 Python 最佳实践的简短问题。我已经看到 lambda + filter 函数在列表理解中的使用,但我想知道是否有更简单的方法可以在列表中查找特定元素,而无需生成和迭代整个列表。
使用 AWS boto3 库,我正在使用列表推导查询各种 get_x() 函数:
[i['domainName'] for i in domain_names['items'] if re.search(r'\b'+domain_name, i['domainName'])].pop()
[i['id'] for i in usage_plans['items'] if i['name']==f'{self.service}Usage'].pop()
如果未找到项目,则会捕获 IndexError 并将其转发给用户。由于这是在 AWS Lambda 函数中,我担心函数的可扩展性和运行时计费。
我应该继续使用列表推导式,还是有更好的方法?
【问题讨论】:
-
你总是可以用命令式的方式写出函数。
-
当然可以,但我只是不知道是否有一种快速且一次性的方法。