Python trouve l'objet dans une liste

J'ai une liste de personnes:

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

Je suis ajoutant des victoires à l'aide d'une liste de noms (['Fred', 'Mary', 'Sally']). Je ne sais pas si le nom est dans la liste des personnes déjà, et j'ai besoin d'insérer un nouvel enregistrement si pas. Actuellement, je suis en train de faire les suivants:

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

Est-il une meilleure façon de le faire avec une liste? Étant donné que je suis sauver ce pour MongoDB je ne peux pas utiliser un dict qu'il vous fera économiser comme un objet, et je veux utiliser native des fonctions de tableau de tri et de cartographie qui ne sont pas disponibles pour les objets.

source d'informationauteur Josh K | 2011-02-25