在Python中向键值对字典添加键和值

6
我的目标是向字典中的一个值添加键值对: 我有以下内容:
crucial = {'C': {'C': 0, 'B': 1}}
done = {}
for each in crucial:
    for i in each:
        done['D'] = 0
        print(done)
        print(crucial[i].append(done))

输出结果如下:
  Traceback (most recent call last):
  File "C:\Users\User\Documents\Programming Full-Stack\Python\Exercise Files\02 Quick Start\conditionals.py", line 13, in <module>
    print(crucial[i].append(done))
AttributeError: 'dict' object has no attribute 'append'
{'D': 0}

预期输出:
{'C': {'C': 0, 'B': 1, 'D':0}}

因此,有没有人能够为我提供一个指南,以将键值对附加到外部字典中的值字段中?
尝试不同的方法:到目前为止,我已经尝试将字典转换为列表,并声明d为空列表[],而不是{}。我还尝试在.append之前使用.extend。但在这些情况下,我都没有得到想要的结果。
谢谢你提前。

3
"Append"和"extend"是针对列表的方法,而不是字典。 - Mark Skelton
在字典中,应该使用.update({a:b})而不是.append()。 - dede
2个回答

8
正如错误所述,字典(dict)没有属性“append”。字典对象中没有“append”方法。要将值分配给字典中的特定键,只需:
d[key] = new_value

如果您希望的话,new_value可以是{'a':1}

如果您想要使用新数据更新字典,您可以使用update方法。

d.update(new_stuff)

在您的代码中,只需更改您的追加方式,类似于我提供的示例。我在此处进行了更正:
crucial = {'C': {'C': 0, 'B': 1}}
done = {}
for each in crucial:
    for i in each:
        done['D'] = 0
        print(done)
        crucial[i].update(done)

print(crucial)

非常感谢您抽出时间回答我的问题。提供的答案会删除关键清单的内容。我该如何将“D:0”包含到关键清单中,而不是替换值? - NellMartin
@NellMartin 谢谢你发现了这个问题。我已经修复了它。试一下看看。如果可以的话,请告诉我它是否有效。 - idjaw
谢谢idjaw!那就是答案。 - NellMartin

5

Python有一个更新函数,可以向字典中添加新项目

crucial .update({'D':'0'})

@NellMartin - 这很容易,只需一个语句就可以轻松地将任何项添加到字典中。如果您对我的答案满意,请将其标记为已回答。 - Henin RK
非常感谢,它确实帮助了我。今天我学到了新东西! - NellMartin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接