728x90
딕셔너리에 관한 개념
딕셔너리 생성
dic = dict(zip(rank, attendance))
dic = dict(sorted(dic.items()))
딕셔너리는 원래 간단하게, 아래처럼 중괄호를 통해 생성할 수 있다.
lux = {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
lux
# {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
혹은 dict 함수를 통해 딕셔너리를 만들 수 있는데..
- 딕셔너리 = dict(키1=값1, 키2=값2)
- 딕셔너리 = dict(zip([키1, 키2], [값1, 값2]))
- 딕셔너리 = dict([(키1, 값1), (키2, 값2)])
- 딕셔너리 = dict({키1: 값1, 키2: 값2}
##### 1번 dict 함수를 통해 키=값 형식으로 딕셔너리를 만듦
# 이때, 키에 ''(작은 따옴표)나 ""(큰 따옴표)를 사용하지 않아야 한다.
dic1 = dict(a=1, b=2, c=3, d=4)
##### 2번 dict에서 zip함수 이용
dic2 = dict(zip(['a', 'b', 'c', 'd'], [1, 2, 3, 4])) # zip 함수로
##### 3번 dict 안에 리스트로 매개변수 제공
dic3 = dict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
##### 4번 dict 안에 중괄호로 딕셔너리 생성
dic4 = dict({'a': 1, 'b': 2, 'c': 3, 'd': 4})
# dic1~4 모두
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}
딕셔너리 정렬
딕셔너리는 순서가 정해져있지 않기 때문에, 정렬하고 싶은 기준을 명시해줘야만 한다.
Key를 기준으로 오름차순 & 내림차순 정렬
# 오름차순 정렬 예시
my_dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}
sorted_dict_1 = dict(sorted(my_dict.items(), key=lambda x: x[0]))
# 또는
sorted_dict_2 = dict(sorted(my_dict.items()))
# Key 기준으로 오름차순 정렬한 결과
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}
###########
# 내림차순 정렬 예시
my_dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[0], reverse=True))
# Key 기준으로 내림차순 정렬한 결과
# {'d': 4, 'c': 3, 'b': 2, 'a': 1}
딕셔너리에서 sorted() 함수를 사용하면, 자동으로 key를 이용해 정렬을 해준다.
혹은 lambda 함수를 이용해 정렬하고 싶은 기준을 명시할 수도 있다.
오름차순에 비해 내림차순은 reverse=True를 통해 정렬할 수 있다.
my_dict.items()를 적용하면 딕셔너리의 값을 (Key, Value) 형태의 튜플로 반환을 해준다.
Value를 기준으로 오름차순 & 내림차순 정렬
# 오름차순 정렬 예시
my_dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1]))
# Value 기준으로 오름차순 정렬한 결과
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}
###########
# 내림차순 정렬 예시
my_dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[1], reverse=True))
# Value 기준으로 내림차순 정렬한 결과
# {'d': 4, 'c': 3, 'b': 2, 'a': 1}
key는 x[0]이지만, value는 x[1]을 통해 접근할 수 있다.
딕셔너리 순회
[k for k, v in dic.items() if v is True]
딕셔너리 순회에는 총 4가지 방법이 있다.
1. key를 통해 키에 직접 접근하기
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for key in dic:
print(key)
# 출력값
# a
# b
# c
# d
2. .items()를 통해 키와 값에 접근하기
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for key, value in dic.items():
print(key, value)
# 출력값
# a 1
# b 2
# c 3
# d 4
3. .keys()를 통해 키에 접근하기
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for key in dic.keys():
print(key)
# 출력값
# a
# b
# c
# d
4. .values()를 통해 값에 접근하기
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
for value in dic.values():
print(value)
# 출력값
# 1
# 2
# 3
# 4
정리하자면...
키 접근 -> 딕셔너리 자체(dic), dic.keys()
값 접근 -> dic.values()
키, 값 접근 -> dic.items()
끄읏-!
728x90
'PYTHON' 카테고리의 다른 글
[PYTHON] 리스트 원소 타입 바꾸기 - map (0) | 2024.02.05 |
---|---|
.ipynb 파일을 .py파일로 변경하기 (0) | 2024.02.04 |
[PYTHON] 정규표현식 활용하기 (0) | 2024.02.02 |
[PYTHON] 2차원 배열 정렬하기 (0) | 2024.02.02 |
[PYTHON] lambda 함수 활용(map, reduce, filter) (0) | 2024.02.02 |