dict 자료형의 객체들은 리스트와 달리 인덱스가 정수여야 할 필요가 없으며, 변형 불가능한 어떤 값이라도 가능하다는 점을 제외하면 리스트와 같다. 순서대로 정렬되어 있지 않기 때문에 인덱스가 아닌 키를 사용해야 한다. 딕셔너리는 키/값으로 된 쌍이로 생각하면 된다. dict 자료형의 상수들은 중괄호를 사용해서 표현하고 각 요소들은 키와 그 뒤에 콜론 그리고 값으로 표현한다.
문자열에 관한 메소드
s.count(s1) : s에서 s1이 몇 번 나타나는지 센다.
s.find(s1) : s에서 s1이 처음 나타난 곳의 인덱스를 반환하여 없을 경우 -1을 반환한다.
s.rfind(s1) : find와 같으나 s의 끝에서부터 시작한다.
s.index(s1) : find와 같으나 s에 s1이 없을 경우 예외를 발생시킨다.
s.rindex(s1) : index와 같으나 s의 끝에서부터 시작한다.
s.lower() : s에 있는 모든 대문자를 소문자로 변환한다.
s.replace(old, new) : s에서 모든 문자열 old를 new로 대체한다.
s.rstrip() : s에서 오른 편에 있는 공백을 제거한다.
s.split(d) : 구분 문자 d를 사용해서 s를 나눈다. s의 하위 문자열로 구성되어 있는 리스트를 반환한다.
다음 예를 살펴보면
# 딕셔너리
monthNumbers = {'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr' : 4, 'May' : 5,
1: 'Jan', 2: 'Feb', 3: 'Mar', 4: 'Apr', 5: 'May'}
print('The third month is ' +monthNumbers[3])
dist = monthNumbers['Apr'] - monthNumbers['Jan']
print('Apr and Jan are', dist, 'months apart')
출력 결과
The third month is Mar
Apr and Jan are 3 months apart
딕셔너리에 들어가는 값들은 순서대로 되어있지 않기 때문에 인덱스로 접근할 수 없다. 때문에 monthNumbers[1]은 딕셔너리에 두 번째로 들어간 값이 아니라 키가 1인 것을 의미한다.
keys 메소드는 딕셔너리의 키를 담고 있는 리스트를 반환한다. 키의 순서는 정의되어 있지 않으므로 print(monthNumbers.key())를 실행해 보면 키의 순서가 다음과 같이 나올 수도 있다.
dict_keys(['Jan', 'Feb', 'Mar', 'Apr', 'May', 1, 2, 3, 4, 5])
딕셔너리에서 for문을 사용해서 값들을 접근할 경우 반복 변수는 키/값의 쌍이 아니라 키이다.
keys = []
for e in monthNumbers:
keys.append(e)
keys.sort()
print(keys)
출력 결과
TypeError: '<' not supported between instances of 'int' and 'str'
python 3.x의 경우 서로 다른 자료형들을 비교 연산하는 것이 가능하지 않으므로 에러 메시지를 출력한다. 딕셔너리는 파이썬의 큰 장점 중 하나이다. 다양한 프로그램을 작성할 때 생길 수 있는 어려움들을 크게 해소해준다.
'파이썬' 카테고리의 다른 글
(파이썬) 예외 처리하기 (0) | 2023.08.06 |
---|---|
(파이썬) 문자 번역하기 (0) | 2023.08.05 |
(파이썬) 문자열, 튜플, 리스트 (0) | 2023.08.04 |
(파이썬) 함수를 객체로 사용하기 (0) | 2023.08.04 |
(파이썬) 함수를 객체로 사용하기 (0) | 2023.08.04 |