python - 字典更新序列元素 #0 的长度为 3;使用元组更新时需要 2

标签 python dictionary

我的字典有问题,我想将其拆分成另外两个。

dico={'GA1': {'main': 1, 'middle': 1, 'sub': 1}, 
      'GA2': {'main': 1, 'middle': 1, 'sub': 2}, 
      'GA3': {'main': 1, 'middle': 1, 'sub': 3}, 
      'GA4': {'main': 1, 'middle': 1, 'sub': 4}, 
      'GA5': {'main': 1, 'middle': 1, 'sub': 5}, 
      'GA6': {'main': 1, 'middle': 1, 'sub': 6}, 
      'GA7': {'main': 1, 'middle': 1, 'sub': 7}, 
      'GA8': {'main': 1, 'middle': 1, 'sub': 8}, 
      'GA9': {'main': 1, 'middle': 1, 'sub': 9}, 
      'GA10': {'main': 1, 'middle': 1, 'sub': 10}}

我想将 GA2 和 GA6 到 GA10 放入字典 d1 中,将 GA1 和 GA3 到 GA5 放入字典 d2 中。

当我将其转换为列表时,我最终得到的是像这样的元组,

list(dico.items())[0] 

给出 ('GA1', {'main': 1, 'middle': 1, 'sub': 1}) 当我想将它设置到我的新词典中时,

d2 = {}
d2.update(list(dico.items())[0])

我最终得到“builtins.ValueError:字典更新序列元素#0 的长度为 3;需要 2”

字典是元组元素的无效格式吗?

谢谢你的帮助

亚历山大

最佳答案

你是这个意思吗?

d2.update([list(dico.items())[0]])

您可以使用元组列表 来初始化字典。您只提供了一个元组,而不是在列表中。使用 [] 初始化单例列表并传递:

{'GA10': {'middle': 1, 'main': 1, 'sub': 10}}

此外,执行 list(dico.items()) 然后取第 0 个元素是一种浪费。如果可以,请考虑改变解决问题的方法。

关于python - 字典更新序列元素 #0 的长度为 3;使用元组更新时需要 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44804109/

相关文章:

python - 为什么即使格式匹配,Python 日期时间也会失败 {Date}2016-11-22T11 :49:21. 826-05:00

python - 将雅虎财经日期设置为数据框索引

ios - 运行时加载 plist 的内容会崩溃 "many"次之一

Python:将用户输入的两项列表存储为字典中的值?

python - 使用包 pdf2image 的函数 convert_from_path() 时出现 FileNotFoundError

python - 有哪些工具可用于构建用于部署目的的 debian 软件包?

java - 如何在 Map<Pair<Match,DatapathId>, FlowRuleStats> 中进行迭代循环?

android - 如何修复 "java.lang.NoSuchMethodError: com.google.firebase.database.DatabaseReference.setValue"

c# - 在 C# 2.0 中将 Dictionary<string,List<foo>> 转换为 List<foo>

python - 如何将字符串转换为看起来已经是字典的字典?