编辑字典列表的 Pythonic 方式

标签 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

最佳答案

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

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/

相关文章:

python - 字典值是另一个字典

python - 将数据帧字典写入文件

python - Python 中的异步流处理

python - 使用 Python SDK 等待 Docker 容器开始运行

python - 第二个管道运算符不适用于我在 python 中的正则表达式

python - 解析文件中的文本

dictionary - 如何区分 java map 和 clojure map?

python - key :Value Pairs from txt file into a dictionary

ios - 快速调用中的额外参数

python - Django 如何在 i18n_patterns 中设置默认语言?