튜플을 합쳐서 dictionary만들기


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)
  • 2016년 01월 13일에 작성됨

조회수 302


1 답변


좋아요
0
싫어요
채택취소하기

아래 코드는 어떠신가요? 먼저, zip([iterable, ...])i번째 tuple이 각 인자의 i번째 원소를 저장하고 있는 list of tuple를 return합니다.

그다음으로, dict()가 zip()한 결과를 인자로 받아 list item중 첫 번째 objectkey로, 두 번째 objectvalue로 설정한 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))
  • 2016년 01월 13일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close