본문 바로가기
파이썬/기초 문법

[파이썬]리스트의 정렬, 카운트, 위치찾기

by 코키드 Cokid 2022. 10. 1.
반응형

이번 포스팅에서는 리스트 함수의 정렬, 카운팅, 위치 반환 관련 함수들에 대해 포스팅한다.

 

리스트 정렬하기 - 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

반응형

댓글