Python:使用[0] = Key和[1:] =值从列表创建字典

时间:2014-12-28 06:18:42

标签: python list dictionary permutation itertools

我正在使用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'...]}

1 个答案:

答案 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']}