用Python中的元素列表搜索列表字典的优化方法
我正在尝试在列表中搜索第一次出现的字典。我创建的逻辑适用于小数据,但我有一个一百万行的列表,其他要搜索的列表元素有 1000 个元素。
data = [{'team': 'a', 'id':11}, {'team': 'b', 'id':111}, {'team': 'c', 'id':1111}]
list_to_see = ['a','c']
check = None
for index in range(len(data)):
if data[index]['team'] in list_to_see[index]:
check = data[index]['id']
break
print(check)
#Output: 11
所以,我得到了第一个元素 Id,这正是我想要的结果。是否有任何优化的方法可以获得可以处理大数据的相同输出?谢谢
回答
使用generator expression并调用 next 来获取第一个值:
g = (i['id'] for i,j in zip(data, list_to_see) if i['team'] in j)
print(next(g))