gpt4 book ai didi

python - 选择满足条件的元素

转载 作者:太空宇宙 更新时间:2023-11-04 07:19:14 25 4
gpt4 key购买 nike

我想从一个(很长的)列表中选择一个满足条件的特定元素。在我的具体情况下,列表中的每个项目都是一个类,我想要的条件是,例如,item.id == 1。

我开始了

[item for item in collection if item.id == 1]

但我不想遍历整个列表,因为我确定只有一个元素满足条件。

另一种选择是

def check(collection):
for item in collection:
if item.id == 1:
return item

有没有更有效的方法? Python 3 有内置函数吗?另一种选择是预处理列表以获得字典,例如

{item.id : item for item in collection}

最佳答案

您可以使用 generator expressionnext() function :

item = next((item for item in collection if item.id == 1), None)

这将在集合中找到第一个 匹配元素,如果没有匹配则返回None。它不会迭代和评估任何超过找到一个元素的严格要求。

但是,如果您确实需要做很多这样的事情,那么只创建一次映射然后每次都查询会更有效率:

mapping = {item.id: item for item in collection}
item = mapping.get(1)

因为这会将循环限制为一次,然后使用 O(1) 查找性能。这是内存与速度的权衡。

关于python - 选择满足条件的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27040117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com