사전

2012-12-21 3 views
-2

그래서 나는이 같은 개체의 목록이 있습니다사전

['bob', 'tob', 'mom'], ['tom', 'apa'], ['cat'] 

와 나는이 같은 사전의 사전을 만들 싶습니다

{ 
    {0: 'bob', 1: 'tob', 2: 'mom'}, 
    {0: 'tom', 1: 'apa'}, 
    {0: 'cat'} 
} 

은 무엇입니까 이 일을 마무리 짓는 파이썬 적 방법? 감사!

+2

사전의 법적 사전 아니다 :있다 (예를 들어'{0 : 'bob', 1 : 'tob', 2 : 'mom'} '의 키는 무엇입니까?) –

+0

키는 대상에 표시된 숫자로 구성됩니다. 너 무슨 뜻이야? – Mike

+3

'bob '의 키는 숫자입니다. '{0 : 'bob', 1 : 'tob', 2 : 'mom'}'(즉, * outer * 사전)의 핵심은 무엇입니까? –

답변

3

listlistsetdict으로 변환하려는 것 같습니다. 색인이 값에 매핑됩니다.

setdict과 같이 unhashable 값을 가질 수 없기 때문에 그렇게 할 수 없습니다. 하지만 dictslist으로 쉽게 변환 할 수 있습니다.

list은 에 의해 dict으로 변환 될 수 있습니다. 이렇게하면 원래 list과 똑같은 방식으로 사용할 수있는 목록이 제공됩니다 (따라서 d[0]l[0]과 동일한 것을 반환합니다). 이는 원하는 것처럼 보입니다.

목록에 함께 넣으려면 목록 이해를 사용하십시오.

>>> l=[['bob','tob','mom'],['tom','apa'],['cat']] 
>>> d=[dict(enumerate(i)) for i in l] 
>>> d 
[{0: 'bob', 1: 'tob', 2: 'mom'}, {0: 'tom', 1: 'apa'}, {0: 'cat'}] 
+0

고마워요! 당신은 저조한 질문을 이해하고 나에게 완벽한 답을주었습니다. 좋은 선생님! – Mike

0
index_as_key = dict(enumerate(['bob','tob','mom'])) 

당신이 목록을 반복하는 동안 그냥 목록 항목의 인덱스를 원하는 경우 필요 중간 DICT 만들 수 없습니다 :

for i, item in enumerate(['bob','tob','mom']): 
    # do something