2016-03-06 85 views
4

我的预期目标是追加一个键值对的值以字典里:附加键和值的键值对字典的Python

我有以下几点:

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为[]的列表,而不是{}。我也试过把.extend替换成.append。但在这些情况中,我都没有得到我想要的结果。

预先感谢您

+3

追加和扩展的方法列表,没有字典。 – MarkyPython

+0

在字典上使用.update({a:b})而不是.append() – dede

回答

4

由于错误状态,dict有没有属性append。字典对象中没有append方法。要分配一个值,在字典中的特定键,它仅仅是:

d[key] = new_value 

其中NEW_VALUE就可以了,如果你想:{'a':1}

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

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) 
+0

非常感谢您花时间回答我的问题。提供的答案将删除关键列表的内容。我怎样才能包含'D':0而不是替换值呢? – NellMartin

+0

啊。你可以使用更新! – idjaw

+0

@NellMartin感谢您的支持。我修好了它。试试看。让我知道它是否适合你。 – idjaw

3

Python有一个更新功能,以增加新项目字典

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

@NellMartin - 简单易用,并且可以轻松添加任何项目到字典中。如果您对我的回答满意,请将其标为已回答 –

+0

非常感谢。它明确地帮助了我。我今天学到了东西! – NellMartin