【发布时间】:2011-07-04 11:20:02
【问题描述】:
我有一份人员名单:
[
{'name' : 'John', 'wins' : 10 },
{'name' : 'Sally', 'wins' : 0 },
{'name' : 'Fred', 'wins' : 3 },
{'name' : 'Mary', 'wins' : 6 }
]
我正在使用名称列表 (['Fred', 'Mary', 'Sally']) 添加胜利。我不知道这个名字是否已经在人员列表中,如果没有,我需要插入一条新记录。目前我正在做以下事情:
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,因为它将保存为对象,并且我想使用本机数组函数进行排序和映射,这些函数不适用于对象。
【问题讨论】:
标签: python list search indexing