Python находит объект в списке

У меня есть список людей:

[
    {'name' : 'John', 'wins' : 10 },
    {'name' : 'Sally', 'wins' : 0 },
    {'name' : 'Fred', 'wins' : 3 },
    {'name' : 'Mary', 'wins' : 6 }
]

Я добавляю победы, используя список имен ( ['Фред', 'Мэри', 'Салли'] ). Я не знаю, есть ли это имя в списке людей, и мне нужно вставить новую запись, если нет. В настоящее время я делаю следующее:

name = 'John'
person = None
pidx = None
for p in people_list:
    if p['name'] == name:
        person = p
        pidx = people_list.index(p)
        break
if person is None:
    person = {'name' : name, 'wins' : 0}
person['wins'] += 1
if pidx is None:
    people_list.append(person)
else
    people_list[pidx] = person

Есть ли лучший способ сделать это со списком? Учитывая, что я сохраняю это в MongoDB, я не могу использовать dict , поскольку он будет сохранен как объект, и я хочу использовать собственные функции массива для сортировки и сопоставления, которые недоступны для объектов.

9
задан Josh K 25 February 2011 в 17:29
поделиться