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

11 投票
2 回答
29178 浏览
提问于 2025-04-16 09:16

我有一个列表li:

[
{name: "Tom", age: 10},
{name: "Mark", age: 5},
{name: "Pam", age: 7}
]

我想找到某个名字对应的项目在列表中的位置。比如,如果我问“Tom”,它应该告诉我位置是0。如果我问“Pam”,它应该告诉我位置是2。

2 个回答

17

你可以用 name 来给字典(dicts)建立索引。

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)
27
>>> from operator import itemgetter
>>> map(itemgetter('name'), li).index('Tom')
0
>>> map(itemgetter('name'), li).index('Pam')
2

如果你需要从同一个列表中查找很多这样的东西,像Satoru.Logic的回答那样创建一个字典,会更有效率。

撰写回答