字典将许多值更改为多个键

Geo*_*ows 1 python dictionary key

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

dict1 = {'a': [1,2,3], 'b': [4,5,6]}
Run Code Online (Sandbox Code Playgroud)

dict2 = {'a':1, 'a':2, 'a':3,'b':4, 'b': 5, 'b': 6]
Run Code Online (Sandbox Code Playgroud)

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

[0, a, a, a, b, b, b] 
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,虽然越白痴证明答案越好.

我再次感激你了.

wim*_*wim 5

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

我敢肯定,你可以通过遍历得到你想要的东西dict1.items(),但我需要的预期输出列表看起来像一些更多的澄清......在你的榜样ab是不确定的,我不知道是什么0在一开始是代表.

也许你想要这样的东西?

dict2 = {}
for k,v in dict1.items():
  for x in v:
    dict2[x] = k
Run Code Online (Sandbox Code Playgroud)

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


只是为了屎和咯咯笑,在一行中同样的事情作为一个难以理解的字典理解:

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