J'ai une liste de personnes :
[
{'name' : 'John', 'wins' : 10 },
{'name' : 'Sally', 'wins' : 0 },
{'name' : 'Fred', 'wins' : 3 },
{'name' : 'Mary', 'wins' : 6 }
]
J'ajoute des victoires en utilisant une liste de noms ( ['Fred', 'Mary', 'Sally']
). Je ne sais pas si le nom figure déjà dans la liste des personnes, et je dois insérer un nouvel enregistrement si ce n'est pas le cas. Actuellement, je fais ce qui suit :
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
Existe-t-il un meilleur moyen de faire cela avec une liste ? Étant donné que j'enregistre ces données dans MongoDB, je ne peux pas utiliser un fichier de type dict
car il sera enregistré en tant qu'objet et je veux utiliser les fonctions natives des tableaux pour le tri et le mappage qui ne sont pas disponibles pour les objets.