이번 포스팅에서는 리스트 함수의 정렬, 카운팅, 위치 반환 관련 함수들에 대해 포스팅한다.
리스트 정렬하기 - sort, reverse
sort 함수로 리스트 정렬하기(오름차순)
>>> a = [5, 3, 2, 7, 1]
>>> a.sort() # 리스트 a를 오름차순으로 정렬
>>> a
[1, 2, 3, 5, 7]
sort 함수는 리스트를 오름차순으로 정렬한다.
>>> a = ['a', 'e', 'd', 'f', 'h']
>>> a.sort() # 알파벳에도 sort 함수 적용 가능
>>> a
['a', 'd', 'e', 'f', 'h']
>>> a = ['ab', 'ac', 'bc', 'ad', 'ea', 'ba']
>>> a.sort() # 문자열에서도 sort 함수 적용 가능
>>> a
['ab', 'ac', 'ad', 'ba', 'bc', 'ea']
알파벳에서도 sort함수가 오름차순으로 정렬된다. 한의 알파벳 뿐만 아니라 두 개 이상의 알파벳이 조합된 문자열에서 sort 함수를 사용할 수 있다. 첫 번째 문자로 우선 정렬한 후 첫 자리가 겹치면 두 번째 문자로 정렬을 한다.
>>> a = ['나', '다', '가']
>>> a.sort() # 한글도 된다.
>>> a
['가', '나', '다']
한글에서도 sort 함수를 사용할 수 있다.
>>> a = [5, 4, 3, 'c', 'a', 'b']
>>> a.sort() # 숫자와 문자 사이에서는 크기 비교가 안 되어 에러 발생
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'str' and 'int'
문자와 숫자가 혼합된 리스트에서는 sort 함수가 적용되지 않는다. 숫자와 문자에는 비교 연산자를 사용할 수 없어 요소값들 사이에서 크기 비교가 안 된다. 크기 비교가 안 되기 때문에 정려(sorting)도 할 수 없다.
sort 함수로 리스트 정렬하기(내림차순)
>>> a = [5, 3, 2, 7, 1]
>>> a.sort(reverse = False) # reverse의 초기값은 False
>>> a
[1, 2, 3, 5, 7]
>>> a = [5, 3, 2, 7, 1]
>>> a.sort(reverse = True) # 리스트 숫자 내림차순으로 정렬
>>> a
[7, 5, 3, 2, 1]
>>> a = ['나', '다', '가']
>>> a.sort(reverse = True) # 리스트 문자 내림차순으로 정렬
>>> a
['다', '나', '가']
sort 함수에느 reverse라는 매개 변수가 있다. reverse를 입력하지 않고 공백으로 둔다면 reverse의 초기값 False가 default로 입력이 된다. 따라서 reverse를 입력하지 않았던 예시들은 모두 오름차순으로 리스트를 정렬했다.
두 번째, 세 번째 예시에서 sort 함수의 reverse 값이 True로 입력되어 내림차순으로 리스트를 정렬한다.
reverse 함수로 리스트 순서 뒤집기
>>> a = [5, 3, 2, 7, 1]
>>> a.reverse() # 리스트 요소값 순서 역전
>>> a
[1, 7, 2, 3, 5]
reverse 함수는 리스트의 요소값의 순서를 크기에 상관 없이 뒤집기만 한다.
예를 들면 [a[0], a[1], a[2], a[3], a[4]] 리스트에 reverse 함수를 적용하면 [a[4], a[3], a[2], a[1], a[0]]이 된다.
리스트 요소값 개수 세기 & 위치 찾기 - count, index
count 함수로 요소값 개수 세기
>>> a = [1, 1, 3, 4, 2, 2, 2, 'a', 'a', 'b']
>>> a.count(2) # 요소값 2의 개수
3
>>> a.count('a') # 요소값 'a'의 개수
2
>>> a.count(5) # 요소값이 없을 시 0 반환
0
count 함수로 리슽 안에 요소값의 개수가 몇 개인지 확인할 수 있다. count 함수의 괄호 안에 찾고자 하는 값을 입력하면 개수가 나온다. 만약 리스트에 요소값이 없다면 0을 반환한다.
index 함수로 요소의 위치 확인하기
>>> a = [1, 2, 3, 4, 5]
>>> a.index(4) # 4가 위치한 인덱스 반환
3
index 함수는 괄호 안의 값이 위치한 인덱스 번호를 반환한다. 위 코드를 보면 4가 위치한 인덱스 번호 3을 반환한다.
>>> a = [1, 1, 3, 4, 2, 2, 2, 'a', 'a', 'b'] # 중복된 값을 가지는 리스트 생성
>>> a.index(2) # 첫 번째 2가 위치한 4번 인덱스 출력.
4
>>> a.index('a') # 첫 번째 'a'가 위치한 7번 인덱스 출력
7
index 함수는 리스트 안에 중복된 값이 있을 때 첫 번째 값의 인덱스만 반환한다.
>>> a.index(5) # 리스트 내에 찾는 값이 없을 경우 에러 출력
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 5 is not in list
만약 리스트에 찾고자 하는 값이 없을 경우에는 에러를 출력한다.
2022.09.28 - [파이썬/기초 문법] - [Python]리스트(list) 자료형 만들기 & 리스트의 연산
2022.09.29 - [파이썬/기초 문법] - [Python]리스트(list) 인덱싱 & 슬라이싱
2022.09.30 - [파이썬/기초 문법] - [Python]리스트 함수[1/2]: 요소값 추가와 삭제 -append, insert, extend, remove, pop
'파이썬 > 기초 문법' 카테고리의 다른 글
[파이썬]딕셔너리 기본 - 만들기, 키와 값, 키로 값 얻기 (0) | 2022.10.02 |
---|---|
[파이썬]튜플 이해하기 - 특성, 인덱싱, 슬라이싱, 연산 (0) | 2022.10.02 |
[파이썬]리스트 요소값 추가와 삭제하기 (1) | 2022.09.30 |
[파이썬]리스트 자료형의 인덱싱과 슬라이싱 (1) | 2022.09.29 |
[파이썬] 리스트 자료형의 생성과 연산 (0) | 2022.09.28 |
댓글