Python:获取列表中字典项的索引

dkg*_*irl 8 python indexing dictionary list

我有一个清单李:

[
{name: "Tom", age: 10},
{name: "Mark", age: 5},
{name: "Pam", age: 7}
]
Run Code Online (Sandbox Code Playgroud)

我想获得具有特定名称的项目的索引.例如,如果我要求"汤姆"它应该给我:0."帕姆"应该给我2.

Joh*_*ooy 26

>>> from operator import itemgetter
>>> map(itemgetter('name'), li).index('Tom')
0
>>> map(itemgetter('name'), li).index('Pam')
2
Run Code Online (Sandbox Code Playgroud)

如果你需要从同一个列表中查找很多这些,那么在Satoru.Logic的答案中创建一个dict,将会更加高效

  • +1,我不知道这个。我原以为这个问题太微不足道了,没有像`itemgetter`这样的库函数,并且总是循环遍历字典项:D (2认同)

sat*_*oru 15

您可以通过索引索引 name

people = [ {'name': "Tom", 'age': 10}, {'name': "Mark", 'age': 5} ]
name_indexer = dict((p['name'], i) for i, p in enumerate(people))
name_indexer.get('Tom', -1)
Run Code Online (Sandbox Code Playgroud)