在字典列表中查找并更新字典的值

2024-07-05 14:46:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何找到值为user7dictionary,然后更新它的match_sum例如将3添加到现有的4中。在

l = [{'user': 'user6', 'match_sum': 8}, 
        {'user': 'user7', 'match_sum': 4}, 
        {'user': 'user9', 'match_sum': 7}, 
        {'user': 'user8', 'match_sum': 2}
       ]

我有这个,不确定这是否是最好的做法。在

^{pr2}$

Tags: dictionarymatchsumuserpr2user6user9user7
1条回答
网友
1楼 · 发布于 2024-07-05 14:46:26

您还可以使用^{}

l = [{'user': 'user6', 'match_sum': 8},
     {'user': 'user7', 'match_sum': 4},
     {'user': 'user9', 'match_sum': 7},
     {'user': 'user8', 'match_sum': 2}]

d = next(item for item in l if item['user'] == 'user7')
d['match_sum'] += 3
print(l)

印刷品:

^{pr2}$

请注意,如果在调用next()时未指定default(第二个参数),则会引发StopIteration异常:

>>> d = next(item for item in l if item['user'] == 'unknown user')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

如果指定了default,则会发生以下情况:

>>> next((item for item in l if item['user'] == 'unknown user'), 'Nothing found')
'Nothing found'

相关问题 更多 >