编辑字典列表的 Pythonic 方式

Pythonic way of editting list of dictionaries

我编写适合我的代码。但我想知道我是否可以用更好的方式写作。

我的目的是在 dataR 中找到第一个元素,其中 "col" key 的值等于 dataS 元素并将 1 添加到 "quan" key 的值。 dataR 是字典列表。 dataS 是一个列表。

for item in dataS:
    dataR[dataR.index(next(x for x in dataR if x['col']==item))].['quan'] += 1

您不需要按索引查找行,您已经有了:

for item in dataS:
    first_row = next(row for row in dataR
                     if row['col'] == item)
    first_row['quan'] += 1

dataRdict 对象序列的名称。 first_row 是我们给序列中的一个对象起的名字。如果我们使用该名称修改该对象,我们将修改名为 dataR 的序列中的对象。没有副本。在 python 中,要复制一个对象,您通常必须明确。