Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python字典,值键映射_Python - Fatal编程技术网

Python字典,值键映射

Python字典,值键映射,python,Python,我有一个python字典,看起来像这样{3:[2,3,4,5],4:[3,6,7,8]}我需要将字典中的值映射到键。i、 e{2:[3],3:[3,4],4:[3],5:[3],6:[4],7:[4],8:[4]} 我怎样才能做到这一点呢?循环遍历dict和每个值列表以构建新结构。您可以使用(或a)保存一些样板代码: data = {3: [2, 3, 4, 5], 4: [3, 6, 7, 8]} rev = {} for k, lst in data.items(): for va

我有一个python字典,看起来像这样
{3:[2,3,4,5],4:[3,6,7,8]}

我需要将字典中的值映射到键。i、 e
{2:[3],3:[3,4],4:[3],5:[3],6:[4],7:[4],8:[4]}


我怎样才能做到这一点呢?

循环遍历dict和每个值列表以构建新结构。您可以使用(或a)保存一些样板代码:

data = {3: [2, 3, 4, 5], 4: [3, 6, 7, 8]}
rev = {}

for k, lst in data.items():
    for val in lst:
        rev.setdefault(val, []).append(k)
rev
# {2: [3], 3: [3, 4], 4: [3], 5: [3], 6: [4], 7: [4], 8: [4]}


如果您在自己解决此问题时遇到特定问题,您可以在此处询问。请记住在
集合的
解决方案末尾键入将结果
rev
转换为
dict()
defaultdict
已经是
dict
了!这样就可以充分利用它。您没有为调试
打印输出编码,是吗?我不知道他/她在编码什么。我只是想避免“defaultdict(,{2:[3],3:[3,4],4:[3],5:[3],6:[4],7:[4],8:[4]})
与我期望的输出不同。”我知道初学者经常会遇到这个问题。他们越早意识到数据结构的重要性,而不是它的
repr(…)
output,就越好;-)
from collections import defaultdict

rev = defaultdict(list)
for k, lst in data.items():
    for val in lst:
        rev[val].append(k)