繁体   English   中英

难以理解字典的变化

[英]Difficulty understanding changes to dictionary

我正在浏览旧帖子,以便找到一种通过迭代项目来更改字典中值的方法。

dictionary = {
    1: [
        {
            "id": "1234",
            "cow": "parts/sizes/lakes"
        },
        {
            "id": "5151",
            "cow": "minors/parts"
        }
        ]}

def fetchanswers():
    for item in dictionary[1]:
        yield(item["id"], item["cow"])

for a, b in fetchanswers():
    k = {}
    k["id"] = a
    k["cow"] = b.replace("parts", a)

我的理解是 yield 从字典中的任一对象返回两个项目,for 循环创建一个新字典并附加从fetchanswers()获得的值,并且partsid替换。

我不明白当字典为空时如何引用k["id"]

一种改变字典值的方法

您的值是字符串。 字符串是不可变的,因此您需要使用现有键覆盖字典

你不需要另一本字典

# replace "parts" text value with the value of the id key 
for item in list_of_dicts:
    item["cow"] = item["cow"].replace("parts", str(item["id"]))

如何引用 k["id"]

当之后有等号时,它不是推荐。 这是一个任务

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM