通过python中的两个字典添加缺少的数据
我遇到了一个关于通过两个python字典添加数据的小问题 这是我的密码:通过python中的两个字典添加缺少的数据,python,dictionary,Python,Dictionary,我遇到了一个关于通过两个python字典添加数据的小问题 这是我的密码: dicta = {'name' : 'character', 'age': 30 } dictb = {'name' : 'Jon'} 我想在dictb中添加键和值“age”:30。 因此,我: for i in dicta: for j in dictb: if(i not in dictb): dictb.update(i) 然后没有添加任何内容,我遇到了以下问题:
dicta = {'name' : 'character', 'age': 30 }
dictb = {'name' : 'Jon'}
我想在dictb中添加键和值“age”:30。
因此,我:
for i in dicta:
for j in dictb:
if(i not in dictb):
dictb.update(i)
然后没有添加任何内容,我遇到了以下问题:
ValueError:字典更新序列元素#0的长度为1;2是必需的
这是因为我的字典里没有空格吗
我怎样才能解决这个问题
谢谢你的回复
问候您,Karro。您不需要嵌套循环,因为您当前正在使用。只需迭代
dicta
的键,并检查该键是否存在于dictb
中:
for k in dicta:
if k not in dictb:
dictb[k] = dicta[k]
现有代码的问题在于i
是一个键,而不是一个字典。因此调用dict.update(int)
失败。您希望(对于您现有的代码)具有以下内容:
同时仍然摆脱内部循环。您不需要嵌套循环,因为您当前正在使用。只需迭代
dicta
的键,并检查该键是否存在于dictb
中:
for k in dicta:
if k not in dictb:
dictb[k] = dicta[k]
现有代码的问题在于i
是一个键,而不是一个字典。因此调用dict.update(int)
失败。您希望(对于您现有的代码)具有以下内容:
同时仍然摆脱内部循环。这将很好
dicta = {'name' : 'character', 'age': 30 }
dictb = {'name' : 'Jon'}
for key, value in dicta.items(): # items() works at python3 use iteritems in 2
if key not in dictb:
dictb[key] = value
更好
for key in dicta:
if key not in dictb:
dictb[key] = dicta[key]
这会很好的
dicta = {'name' : 'character', 'age': 30 }
dictb = {'name' : 'Jon'}
for key, value in dicta.items(): # items() works at python3 use iteritems in 2
if key not in dictb:
dictb[key] = value
更好
for key in dicta:
if key not in dictb:
dictb[key] = dicta[key]
使用setdefault:dictb.setdefault('age',30)使用setdefault:dictb.setdefault('age',30)请记住,
.items
/.iteritems
是浪费,因为您将整个字典的副本创建为元组进行迭代。请记住,.items
/是浪费,因为您将整个字典的副本创建为元组进行迭代。好的,谢谢,它成功了!:)我得到了它。我很快就会接受你的回答!:)好的,谢谢,成功了!:)我得到了它。我很快就会接受你的回答!:)