티스토리 뷰

반응형

Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.

Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.

 

아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.

Create a dictionary with comprehension

딕셔너리 내포(한 줄 for문)로 만들기

 문제 내용 

Can I use list comprehension syntax to create a dictionary?

리스트 내포 구문을 사용하여 딕셔너리를 만들 수 있습니까?

 

For example, by iterating over pairs of keys and values:

예를 들어 키와 값의 쌍을 반복하여 다음과 같이 지정합니다.
d = {... for k, v in zip(keys, values)}

 

 

 높은 점수를 받은 Solution 

Use a dict comprehension (Python 2.7 and later):

딕셔너리 내포 사용(Python 2.7 이상):
{key: value for (key, value) in iterable}

Alternatively for simpler cases or earlier version of Python, use the dict constructor, e.g.:

더 단순한 경우나 이전 버전의 파이썬의 경우 다음과 같은 dict 생성자를 사용한다.
pairs = [('a', 1), ('b', 2)]
dict(pairs)                         #=> {'a': 1, 'b': 2}
dict([(k, v+1) for k, v in pairs])  #=> {'a': 2, 'b': 3}

 

Given separate arrays of keys and values, use the dict constructor with zip:

별도의 키 및 값 배열이 지정된 경우 zip과 함께 dict 생성자를 사용합니다.
keys = ['a', 'b']
values = [1, 2]
dict(zip(keys, values))  #=> {'a': 1, 'b': 2}
2) "zip'ped" from two separate iterables of keys/vals
dict(zip(list_of_keys, list_of_values))

 

 

 가장 최근 달린 Solution 

Adding to @Ekhtiar answer, if you want to make look up dict from list, you can use this:

@Ekhtiar 답변에 추가하여 리스트에서 룩업 딕셔너리를 만드는 것을 원한다면 다음을 사용할 수 있습니다.
names = ['a', 'b', 'd', 'f', 'c']
names_to_id = {v:k for k, v in enumerate(names)}
# {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'f': 4}

 

Or in rare case that you want to filter duplicate, use set first (best in list of number):

또는 드물게 중복을 필터링하려면 먼저 set(숫자 리스트에서 가장 적합)를 사용합니다.
names = ['a', 'b', 'd', 'f', 'd', 'c']
sorted_list = list(set(names))
sorted_list.sort()
names_to_id = {v:k for k, v in enumerate(sorted_list)}
# {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'f': 4}

names = [1,2,5,5,6,2,1]
names_to_id = {v:k for k, v in enumerate(set(names))}
# {1: 0, 2: 1, 5: 2, 6: 3}

 

 

출처 : https://stackoverflow.com/questions/1747817/create-a-dictionary-with-comprehension

반응형
댓글
공지사항
최근에 올라온 글