编辑词典列表的Pythonic方式

时间:2017-06-12 07:42:23

标签: python dictionary

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

dataR是一系列dict个对象的名称。 first_row是我们为序列中的一个对象赋予的名称。如果我们使用该名称修改该对象,我们将修改名为dataR的序列中的对象。没有制作副本。在python中制作一个对象的副本,你通常必须是明确的。