我编写了适合我的代码。但我想知道我是否可以写得更好。
我的目的是找到 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
最佳答案
您不需要按索引查找行,您已经拥有它:
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 中,要创建对象的副本,通常必须是显式的。
关于编辑字典列表的 Pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44493924/