У меня есть список людей:
[
{'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
, поскольку он будет сохранен как объект, и я хочу использовать собственные функции массива для сортировки и сопоставления, которые недоступны для объектов.