2014-12-28 2 views
0

itertools에서 순열 함수를 사용하고 반환 된리스트를 사전으로 변환하고 싶습니다. 첫 번째 요소 (원래 시퀀스)를 Key로 사용하고이 시퀀스의 가능한 모든 조합을 해당 값으로 사용합니다. '컵'과 '새끼'모양이 같은 대한 예를 들어파이썬 : [0] = 키와 [1 :] = 값으로리스트에서 사전 만들기

, 출력이에서

['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

나 자신이나 당신의 질문에 대답 해 줍니까? 여러분의 목록이'x'이면'{x [0] : x [1 :]} '입니다. – abstractpaper

+0

나는 대답하지 않았지만 다른 사람과 같은 대답을 보았습니다. 고맙습니다. – user3814464

답변

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']} 
+1

약간 수정해야했지만 작동했습니다. :) 고맙습니다! intermed_dict = {perms [0] : perms [1 :] 각 perms에 대해} word_dict.update (intermed_dict) – user3814464