728x90
세트(set)
- mutable, unorderd, iterable
[값 추가]
- .add(x) : x를 세트에 추가
a = {'사과', '바나나', '수박'}
a.add('포도')
print(a) # {'포도', '바나나', '사과', '수박'}
- .update(iterable) : 여러 값을 추가
a = {'사과', '바나나', '수박'}
a.update({'토마토', '토마토', '딸기'}, {'포도', '레몬'})
print(a) # {'포도', '토마토', '사과', '레몬', '수박', '딸기', '바나나'}
[값 삭제]
- .remove(x) : x를 삭제하고, 없으면 KeyError 발생
a = {'사과', '바나나', '수박'}
a.remove('사과')
print(a) # {'바나나', '수박'}
a.remove('애플') # KeyError
- .discard(x) : x를 삭제하고, 없어도 에러 발생하지 않음
a = {'사과', '바나나', '수박'}
a.discard('포도')
a.discard('수박')
print(a) # {'바나나', '사과'}
- .pop() : 임의의 원소를 제거해 반환, 비어있는 set에 적용하면 KerError
a = {'사과', '바나나', '수박', '아보카도'}
a.pop()
print(a) # {'아보카도', '사과', '수박'}
딕셔너리(dictionary)
- immutable, unordered, iterable
[조회]
- .get(key[, default]) : key를 통해 value를 가져옴, KerError가 나지 않음, default는 None, default값을 설정할 수 있음
my_dict = {'apple': '사과', 'banana': '바나나', 'melon': '멜론'}
my_dict.get('apple') # '사과'
# get 메서드 없이 딕셔너리 my_dict의 key 'pineapple'의 value 출력 -> 오류
my_dict['pineapple']
# get 메서드로 딕셔너리 my_dict의 key 'pineapple'의 value를 출력
my_dict.get('pineapple') # 아무 값도 나오지 않음
my_dict.get('pineapple', 0) # 0 반환
[추가 및 삭제]
- .update() : 값을 제공하는 key, value로 덮어씀, key값이 문자열이어도 'apple'이 아닌, apple로 적어야 함
my_dict = {'apple': '사과', 'banana': '바나나', 'melon': '멜론'}
my_dict.update(apple='사과아')
my_dict # {'apple': '사과아', 'banana': '바나나', 'melon': '멜론'}
- .pop(key[, default] : 딕셔너리에 key가 있으면 제거하고 그 값을 돌려줌, 없으면 default 반환
default가 없는 상태에서 딕셔너리에 없으면 KeyError
my_dict = {'apple': '사과', 'banana': '바나나'}
print(my_dict.pop('apple')) # 사과
print(my_dict) # {'banana': '바나나'}
my_dict.pop('melon') # KeyError
my_dict.pop('melon', 0) # 0
[딕셔너리 순회]
# 0. dictionary 순회 (key 활용)
for key in dict:
print(key)
print(dict[key])
# 1. .keys() 활용
for key in dict.keys():
print(key)
print(dict[key])
# 2. .values() 활용
# 이 경우 key는 출력할 수 없음
for val in dict.values():
print(val)
# 3. .items() 활용
for key, val in dict.items():
print(key, val)
[딕셔너리 구축하기]
# 1. dict[key]로 접근하는 방법
my_dict = {}
for title in book_title :
if title not in my_dict :
my_dict[title] = 1
else :
my_dict[title] += 1
# 2. count 메서드를 활용
my_dict = {}
for title in book_title :
my_dict[title] = book_title.count(title)
# 3. get 메서드를 활용
my_dict = {}
for title in book_title :
my_dict[title] = my_dict.get(title, 0) + 1
[Dictionary comprehension]
blood_types = {'A': 40, 'B': 11, 'AB': 4, 'O': 45}
{'-' + key : value for key in blood_types.keys() for value in blood_types.values()}
dusts = {'서울': 72, '인천': 82, '제주': 29, '동해': 45}
{key : ('나쁨' if value > 60 else '보통') for key, value in dusts.items()}
# 출력 : {'서울': '나쁨', '인천': '나쁨', '제주': '보통', '동해': '보통'}
{key : ('매우나쁨' if value > 150 else '나쁨' if value > 60 else '보통' if value > 30 else '좋음') for key, value in dusts.items()}
# 출력 : {'서울': '나쁨', '인천': '나쁨', '제주': '좋음', '동해': '보통'}
728x90
'PROGRAMMING > PYTHON' 카테고리의 다른 글
[Python] 파이썬을 파이썬답게 - 정수/문자열 다루기 (0) | 2022.01.15 |
---|---|
[Python] heapq 모듈 사용법 (0) | 2022.01.11 |
[Python] 리스트 관련 함수 (0) | 2022.01.10 |
[Python] 문자열 관련 함수 (0) | 2022.01.10 |
[Python] 2차원 배열, 딕셔너리 정렬 (0) | 2021.10.08 |
댓글