컬렉션 = Object List = 복수의 의미
한 가지 이상의 값을 넣고 한꺼번에 가지고 다닐 수 있다!
여러 값을 하나의 변수에 담을 수 있다!
덩어리로 취급을 한다!
대부분의 변수는 한 값만을 가지게 된다
아래 예를 들어 보자면
x = 2
x = 4
print(x)
4
2와 4라는 변수를 순서대로 넣어주었는데
4라는 변수만 출력이 된다
대부분의 변수는 위와 같이 한 값을 가지게 되고
변수 호출 시 지정된 마지막 한 값을 출력하게 된다
▷ 컬렉션 : 겉으로 보기엔 하나의 값으로 보일 수 있지만, 안을 보면 각각의 이름을 가지고 여러 값이 들어가 있다
▷ 딕셔너리 : 한마디로 사전, 파이썬의 데이터 컬렉션
파이썬에서 빠르게 데이터베이스 같은 연산을 가능하게 한다
◈ 리스트 vs 딕셔너리
+ 리스트 : 리스트는 안의 원소의 위치를 기반으로 인덱스가 매겨진다
+ 딕셔너리 : 리스트와 다르게 순서가 없으며, 각각의 데이터에 이름표가 붙여진다
purse = dict() # 빈 dict 값 초기화
purse['money'] = 12 # 'money'라는 이름표에 12 라는 값 삽입
purse['candy'] = 3 # 'candy'라는 이름표에 3 이라는 값 삽입
purse['tissues'] = 75 # 'tissues'라는 이름표에 75 라는 값 삽입
print(purse)
>> {'money': 12, 'tissues': 75, 'candy': 3}
print(purse['candy'])
>> 3
purse['candy'] = purse['candy'] + 2 # 'candy'라는 이름표를 가진 데이터에 +2 계산
print(purse)
>> {'money': 12, 'tissues': 75, 'candy': 5}
▶ purse = dict()
해당 명령문은 아래와 같은 뜻을 지닌다
▶ purse = {}
딕셔너리는 값을 찾기 위해 숫자 대신 키를 사용하는 것만 빼면 리스트와 동일하며
리스트와 동일하게 내부 요소 값 수정도 가능하다
◈ 딕셔너리 Traceback error
● 딕셔너리에 없는 키를 참조하면 오류 발생
● in 연산자를 활용하여 해당하는 키가 딕셔너리에 있는지 확인 가능
ccc = dict()
print(ccc['csev'])
>> Traceback error
>> KeyError: 'csev'
'csev' in ccc
>> False
◈ 딕셔너리의 get method
위의 Traceback Error 처럼 없는 키를 참조하면 오류가 발생한다
그런데,
get method를 활용한다면 키가 없을 경우 기본값으로 여기고 실행하며
Traceback Error가 발생하지 않는다
if name in counts :
x = counts[name]
else :
x = 0
x = counts.get(name, 0)
{'csev': 2, 'zqian': 1, 'cwen': 2}
● get() 을 이용한 간소화된 숫자 세기
: 키가 아직 사전에 없으면 get() 을 사용해 기본값을 줄 수 있다
counts = dict()
names = ['csev', 'cwen', 'csev', 'zqian', 'cwen']
for name in names :
counts[name] = counts.get(name, 0) +1
print(counts)
>> {'csev': 2, 'zqian': 1, 'cwen': 2}
▶ counts.get(name, 0)을 사용해 기본값으로 0을 구성
▶ get method 뒤에 +1이 없다면 for 반복문을 돌며 조건식이 참이어도 계속 기본값을 유지한다
ex) counts[name] = counts.get(name, 0)
>> {'csev': 0, 'zqian': 0, 'cwen': 0}
◎ 다른 예시
ddd = {} # ddd = dict() 와 동일한 내용
lst = ["길동", "길순", "길영", "길민", "길순", "길영"]
for n in lst :
ddd[n] = ddd.get(n, 0) +1
print(ddd)
▒ 긴 문장을 딕셔너리를 활용하여 각 단어의 개수를 구하고, 해당 단어의 총 합을 구해보자 ▒
hint) 여러 줄에 걸쳐 이루어진 문장의 경우 한 줄 한 줄마다 요소를 구분하게 만들고, 해당 요소들의 개수로 딕셔너리를 활용하면 된다.
'Python' 카테고리의 다른 글
Python 클래스와 객체 (0) | 2023.03.05 |
---|---|
python으로 DB 파일 출력 및 수정 (0) | 2022.10.27 |
Python 과 File (0) | 2022.09.07 |
튜플(Tuple) (0) | 2022.09.06 |