튜플을 합쳐서 dictionary만들기
조회수 11980회
keys = ('name', 'age', 'food')
values = ('Monty', 42, 'spam')
를 합쳐서
dict = {'name' : 'Monty', 'age' : 42, 'food' : 'spam'}
으로 만들려고 해요.
제가 짠 코드 말고 더 좋은 방법이 있으면 알려주세요
소스코드
keys = ('name', 'age', 'food')
values = ('Monty', 42, 'spam')
dict = {}
map(lambda k, v: dict.update({k: v}), keys, values)
1 답변
-
아래 코드는 어떠신가요? 먼저, zip([iterable, ...])가
i
번째tuple
이 각 인자의i
번째 원소를 저장하고 있는list of tuple
를 return합니다.그다음으로, dict()가 zip()한 결과를 인자로 받아 list item중 첫 번째
object
를key
로, 두 번째object
를value
로 설정한dict
타입을 return합니다keys = ('name', 'age', 'food') values = ('Monty', 42, 'spam') myzip = zip(keys,values) mydict = dict(myzip) print "---zip(ley, values)---" print myzip print "\n---dict(zip(ley, values))---" print mydict
결과)
---zip(ley, values)--- [('name', 'Monty'), ('age', 42), ('food', 'spam')] ---dict(zip(ley, values))--- {'food': 'spam', 'age': 42, 'name': 'Monty'}
다음 방법은 위와 비슷한 구조이면서
zip()
을 쓰는 것 보다 메모리를 적게 씁니다.import itertools keys = ('name', 'age', 'food') values = ('Monty', 42, 'spam') mydict = dict(itertools.izip(keys,values))
댓글 입력