Python多对多词典

Python多对多词典,python,dictionary,many-to-many,Python,Dictionary,Many To Many,我需要: 我有: {'a': [1, 0], 'q': [1, 2], 's': [3, 0], 'w': [3, 2], 'x': [3, -2], 'z': [1, -2]} test2中的每个字母都被分配了第一个数字,表示其三元组在所有三元组中的位置(来自test0),第二个数字表示其在三元组中的位置(来自test1) 例如,('q','a','z')是第一个三元组,所以它的第一个字典值是1。第二个字典值将为2,0,-2,以获得: test0=[1,3] test1=[2,0,

我需要:

我有:

{'a': [1, 0],
 'q': [1, 2],
 's': [3, 0],
 'w': [3, 2],
 'x': [3, -2],
 'z': [1, -2]}
test2中的每个字母都被分配了第一个数字,表示其三元组在所有三元组中的位置(来自test0),第二个数字表示其在三元组中的位置(来自test1)

例如,('q','a','z')是第一个三元组,所以它的第一个字典值是1。第二个字典值将为2,0,-2,以获得:

test0=[1,3]
test1=[2,0,-2]    
test2=[('q', 'a', 'z'),('w', 's', 'x')]
'q':[1,2],
'a':[1,0],
'z':[1,-2]
类似地,('w','s','x')是第二个三元组,因此它的第一个字典值将是3。第二个字典值将为2,0,-2,以获得:

test0=[1,3]
test1=[2,0,-2]    
test2=[('q', 'a', 'z'),('w', 's', 'x')]
'q':[1,2],
'a':[1,0],
'z':[1,-2]
最好的方法是什么

我想简化代码以创建test3,可能使用zip、OrderedDict和/或一行代码,类似于列表理解,但用于字典

如果您只需要一个字典理解oneliner来完成嵌套for循环的工作,那么答案是

'w':[3,2],
's':[3,0],
'x':[3,-2]
演示:


就我个人而言,我认为这有点难以理解。如果我是你,我会坚持使用循环,并添加一些注释,说明发生了什么(以及为什么)

输入的内容到底是什么?我更新了问题使它更清楚。答案对你有用吗?有问题吗?