2014-02-17 2 views
3

나는 defaultdict를 좋아하지만 2-tuple리스트를 자동으로 원한다. 그리고 가능하다면 나는 확신 할 수 없다. 그래서 내가 원하는 것은 다음과 같습니다 :리스트의 defaultdict 튜플

foo = defaultdict(???) 
foo['key1'][0].append('value') 
foo['key1'][1].append('other value') 

이것은 defaultdict로 할 수 있습니까?

답변

3

확인합니다. defaultdict에 기본값을 원하는 값으로 반환하는 함수를 지정해야합니다. list2-tuple

foo = defaultdict(lambda: ([], [])) 
foo['key1'][0].append('value') 
1
from collections import defaultdict 
foo = defaultdict(lambda: defaultdict(list)) 
foo['key1'][0].append('value') 
foo['key1'][1].append('other value') 
print foo 

출력

defaultdict(<function <lambda> at 0x7f7b65b4f848>, {'key1': defaultdict(<type 'list'>, {0: ['value'], 1: ['other value']})}) 
1
foo = defaultdict(lambda: ([], [])) 
1

defaultdict : 같은 일회성 기능을 만들 수있는 가장 쉬운 방법은 람다입니까? 파이썬에서 똑같은 것을 써라.

dd = defaultdict(lambda: ([], []))