Skip to main content
 首页 » 编程设计

python之字典将许多值更改为许多键

2025年05月04日15findumars

我只是想知道在 Python 的美妙世界中是否有任何方法可以从这样的事情开始:

dict1 = {'a': [1,2,3], 'b': [4,5,6]} 

到

dict2 = {'a':1, 'a':2, 'a':3,'b':4, 'b': 5, 'b': 6] 

或等价物,顺序无关紧要,但我需要某种方法将 dict1 分解成可以将数值分配给新列表的索引并将键作为这些索引的实际值的东西,例如dict1 会变成:

[0, a, a, a, b, b, b]  

任何帮助将不胜感激,尽管越白痴证明答案越好。

再次感谢您。

请您参考如下方法:

您的 dict2 没有意义,因为字典键必须是唯一的。

我很确定你可以通过遍历 dict1.items() 得到你想要的东西,但我需要更多地澄清预期的输出列表是什么样子......在你的例子中 a 和 b 未定义,我不知道开头的 0 代表什么。

也许你想要这样的东西?

dict2 = {} 
for k,v in dict1.items(): 
  for x in v: 
    dict2[x] = k 

这会给你一个 dict2 像 {1: 'a', 2: 'a', 3: 'a', 4: 'b', 5: 'b' , 6: 'b'}.请注意,此循环可能会覆盖 dict1 的解压缩值中的重复条目。


只是为了狗屎和咯咯笑,在 1 行中与 难以理解的字典理解 相同:

{x: k for (k,v) in dict1.items() for x in v}