我正在使用itertools
中的排列函数,并希望将返回的列表转换为字典,第一个元素(原始序列)为Key,此序列的所有可能组合作为其对应的值。
例如,'cups'和'pups'的输出如下所示:
['cups', 'cusp', 'cpus', 'cpsu', 'csup', 'cspu', 'ucps', 'ucsp', 'upcs', 'upsc', 'uscp',
'uspc', 'pcus', 'pcsu', 'pucs', 'pusc', 'pscu', 'psuc', 'scup', 'scpu', 'sucp', 'supc',
'spcu', 'spuc']
['pups', 'pusp', 'ppus', 'ppsu', 'psup', 'pspu', 'upps', 'upsp', 'upps', 'upsp', 'uspp',
'uspp', 'ppus', 'ppsu', 'pups', 'pusp', 'pspu', 'psup', 'spup', 'sppu', 'supp', 'supp',
'sppu', 'spup']
从此,我想:
{'cups': ['cusp', 'cpus', 'cpsu', 'csup'...], 'pups': ['pusp', 'ppus', 'ppsu'...]}
答案 0 :(得分:2)
您可以使用 dictionary expression
data = [['cups', 'cusp', 'cpus', 'cpsu', 'csup', 'cspu',],
['pups', 'pusp','upsp', 'upps', 'upsp', 'uspp']]
result = {each[0]:each[1:] for each in data}
print result
收率:
{'pups': ['pusp', 'upsp', 'upps', 'upsp', 'uspp'],
'cups': ['cusp', 'cpus', 'cpsu', 'csup', 'cspu']}