블로그 이미지
조이키트 블로그
아두이노, 라즈베리파이, 반도체 센서/모듈 활용

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

250x250
2023. 8. 4. 16:33 파이썬
728x90
반응형

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의 경우 서로 다른 자료형들을 비교 연산하는 것이 가능하지 않으므로 에러 메시지를 출력한다. 딕셔너리는 파이썬의 큰 장점 중 하나이다. 다양한 프로그램을 작성할 때 생길 수 있는 어려움들을 크게 해소해준다.

728x90
반응형
posted by 조이키트 블로그