我编写适合我的代码。但我想知道我是否可以用更好的方式写作。
我的目的是找到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
答案 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中制作一个对象的副本,你通常必须是明确的。