궁금증 연구소

안녕하세요. 궁금증연구소입니다.

오늘 포스팅 주제는 "파이썬 딕셔너리 꿀팁"입니다.

 

1. 리스트 2개로 딕셔너리 만들기

리스트 2개로 딕셔너리 만들기

 

리스트 2개가 주어졌을 때, 위와 같은 형태로 리스트 내포를 통해 쉽게 딕셔너리를 만들어 낼 수 있다. 인덱스 값을 활용해 리스트 각각의 값을 튜플 형태로 리스트 안에 저장해서, 하나의 리스트 값을 dict() 함수의 매개변수로 넘겨주는 형태이다.

 

두 번째 방법은 zip 함수를 활용하는 것이다.

 

zip 함수 활용 딕셔너리 만들기

 

zip 함수의 매겨변수로 리스트 값을 각각 넘겨주고 이를 통째로 dict 함수의 매개변수로 넘겨주면 아래와 같은 결괏값을 얻을 수 있다. 개인적으로 zip을 이용하는 게 쉽지만, 둘 다 알아두면 상황에 따라 써먹기 좋을 듯하다.

 

결과

 

 

 

 

 

2. 딕셔너리의 unpack 값은 key값만 전달된다.
dic = {10: 'kim', 20: 'mun', 30: 'lee'}

a,b,c = dic

print(a,b,c)

위와 같이 딕셔너리 dic을 a, b,c 라는 변수에 unpack 하면 a ,b, c에 어떤 값이 들어갈까?

a에 10:'kim이라는 딕셔너리의 key, value 값이 모두 들어갈 것 같지만, 실제로 실행해보면 key 값만 저장된다는 것을 알 수 있다.

결과값

마찬가지로 for문을 통해 값을 빼내도 key값만 빠져나온다.

 

dic = {10: 'kim', 20: 'mun', 30: 'lee'}

for v in dic:
    print(v)

위 코딩의 결괏값은 10,20,30으로 키값만 print 되는 것을 볼 수 있다.

10,20,30

dic = {10: 'kim', 20: 'mun', 30: 'lee'}

if 10 in dic:
    print('10이 존재합니다.')

in 함수를 통해 딕셔너리 안의 값을 확인할 때에도,  값 in dictionary 형태로 코드를 작성하면, 딕셔너리 내의 키값을 기준으로 값이 존재하면 True, 존재하지 않으면 False가 리턴된다.

 

 

만약, key값과 value 값 모두 출력해내고 싶다면 어떻게 해야 할까?

dic = {10: 'kim', 20: 'mun', 30: 'lee'}

for a,b in dic.items() :
    print(a,b)

위와 같이 items() 함수와 for문을 이용해 unpack을 하면 두 값을 모두 출력해 낼 수 있다.

 

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading