lst = [{'id':'1234','name':'Jason'}, {'id':'2345','name':'Tom'}, {'id':'3456','name':'Art'}]tom_index = next((index for (index, d) in enumerate(lst) if d["name"] == "Tom"), None)# 1如果需要从名称重复获取,则应按名称对它们进行索引(使用字典),这样 get 操作的时间为O(1)。一个想法:
def build_dict(seq, key): return dict((d[key], dict(d, index=index)) for (index, d) in enumerate(seq))info_by_name = build_dict(lst, key="name")tom_info = info_by_name.get("Tom")# {'index': 1, 'id': '2345', 'name': 'Tom'}


