我有一个列表 li:
[
{name: "Tom", age: 10},
{name: "Mark", age: 5},
{name: "Pam", age: 7}
]
我想获得具有特定名称的项目的索引。 例如,如果我要求“Tom”,它应该给我:0。 “Pam”应该给我2。
我想获得具有特定名称的项目的索引。例如,如果我要求“Tom”,它应该给我:0。“ Pam”应该给我2。
我有一个列表 li:
[
{name: "Tom", age: 10},
{name: "Mark", age: 5},
{name: "Pam", age: 7}
]
我想获得具有特定名称的项目的索引。 例如,如果我要求“Tom”,它应该给我:0。 “Pam”应该给我2。
我想获得具有特定名称的项目的索引。例如,如果我要求“Tom”,它应该给我:0。“ Pam”应该给我2。
>>> from operator import itemgetter
>>> map(itemgetter('name'), li).index('Tom')
0
>>> map(itemgetter('name'), li).index('Pam')
2
如果你需要从同一个列表中查找很多这样的内容,像Satoru.Logic的回答所做的那样创建一个字典,将会更加高效。itemgetter
这样的库函数,所以总是循环遍历字典项:D - 0xc0de您可以通过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)