파이썬 독학/입문 강의

[파이썬독학강의] 6.2 파이썬 리스트 함수

데니 by danny 2023. 2. 13. 02:39
반응형

파이썬 리스트 함수
파이썬 리스트 함수

님들 안녕하세요. 14년차 IT 개발자 데니예요. 오늘은 여러분들이 앞으로 파이썬 자료형 리스트를 사용하시면서 알아두시면 좋은 몇 가지 리스트 함수를 정리해 보았어요. 이번 시간에 리스트 관련 다양한 함수를 학습하시면서 리스트 사용법에 더 익숙해지시는 시간이 되시면 좋을 거 같아요. 자 시작해 볼게요~!

 

 

6.1 파이썬 리스트 함수

파이썬 리스트 관련 함수를 사용하기 위해선 리스트변수명.함수명() 와 같은 표현 방식을 사용해요. 리스트 관련 함수 표현 방식을 확인하셨으니, 본격적으로 sort()함수부터 extend()함수까지 살펴볼게요.

 

  ▶ sort()함수 - 리스트 내 요소 정렬

sort()함수는 리스트 내 요소를 정렬시키기 위해서 사용하는 함수예요. 매개변수를 전달해서 오름차순(ascending) 정렬과 내림차순(descending) 정렬을 할 수 있어요. 매개변수명은 reverse로 디폴트 값으로 False가 세팅되어 있으므로 값을 전달하지 않는다면 기본 오름차순으로 정렬돼요. reverse=True로 매개변수 값을 전달한다면 내림차순으로 정렬돼요.

1
2
3
4
5
6
7
8
9
10
>>> lst_func1 = [362451]
>>> lst_func1
[362451]
>>> lst_func1.sort()
>>> lst_func1
[123456]
>>> lst_func1.sort(reverse=True)
>>> lst_func1
[654321]
>>>
cs

라인[1]은 리스트를 생성해서 lst_func1 변수에 대입했어요.

라인[2]~[3]은 리스트를 화면에 출력해 봤어요.

라인[4]는 리스트 함수인 sort()를 사용했어요. 매개변수는 전달하지 않았으므로 기본 오름차순 정렬이 될 거예요.

라인[5]~[6]는 정렬함수 사용 후 리스트를 출력했어요. 오름차순으로 정렬되었어요.

라인[7]은 매개변수 reserve에 True 값을 전달했으므로 내림차순 정렬이 될 거예요.

라인[8]~[9]는 정렬함수 사용 후 리스트를 출력했어요. 내림차순으로 정렬되었어요.

 

1
2
3
4
5
6
7
8
9
10
>>> lst_func2 = ['d''c''a''b']
>>> lst_func2
['d''c''a''b']
>>> lst_func2.sort()
>>> lst_func2
['a''b''c''d']
>>> lst_func2.sort(reverse=True)
>>> lst_func2
['d''c''b''a']
>>>
cs

라인[1]~[3]은 영어 소문자 알파벳을 요소로 가진 리스트를 생성해서 lst_func2 변수에 대입하고, lst_func2를 출력했어요.

라인[4]는 sort()함수를 사용해서 오름차순 정렬을 시켰어요.

라인[5]~[6]은 영어 소문자 알파벳이 오름차순으로 정렬되었어요.

라인[7]은 reverse 매개변수에 True 값을 전달하여 내림차순으로 정렬시켰어요.

라인[8]~[9]는 영어 소문자 알파벳이 내림차순으로 정렬되었어요.

 

 

  ▶ reverse()함수 - 리스트 내 요소 뒤집기

reverse()함수는 리스트 내 요소 순번을 뒤집어주는 함수예요. 즉, 리스트 내 요소들 1, 2, 3, 4, 5, 6으로 순서대로 위치하고 있다면, 그 위치를 6, 5, 4, 3, 2, 1로 뒤집어 주는 기능을 가지고 있어요.

1
2
3
4
5
6
7
>>> lst_func3 = [362451]
>>> lst_func3
[362451]
>>> lst_func3.reverse()
>>> lst_func3
[154263]
>>>
cs

라인[1]~[3]은 숫자를 요소로 갖는 리스트를 생성해서 lst_func3변수에 대입하고, 화면에 출력했어요.

라인[4]는 reverse()함수를 사용해서 리스트 내 요소의 순서를 뒤집었어요.

라인[5]~[6]은 리스트 순서가 뒤집혔어요.

 

1
2
3
4
5
6
7
>>> lst_func4 = ['d''c''a''b']
>>> lst_func4
['d''c''a''b']
>>> lst_func4.reverse()
>>> lst_func4
['b''a''c''d']
>>>
cs

라인[1]~[3]은 영어 소문자를 갖는 리스트를 생성해서 lst_func4변수에 대입하고, 화면에 출력했어요.

라인[4]는 reverse() 변수를 사용해서 리스트 내 요소의 순서를 뒤집었어요.

라인[5]~[6]은 영어 소문자를 갖는 리스트의 순서가 뒤집혔어요.

 

 

  ▶ append()함수 - 리스트 요소 추가

append()함수는 매개변수를 받아서 매개변수를 해당 리스트 맨 마지막에 요소로 추가해 주는 함수예요. 매개변수에 파이썬의 모든 자료형 값을 전달할 수 있어요.

1
2
3
4
5
6
7
8
>>> lst_func5 = [1234]
>>> lst_func5.append(5)
>>> lst_func5
[12345]
>>> lst_func5.append(['a''b'])
>>> lst_func5
[12345, ['a''b']]
>>>
cs

라인[1]은 정수를 요소로 갖는 리스트를 생성해서 lst_func5 변수에 대입했어요.

라인[2]는 append()함수에 매개변수 정수 5를 전달해서 lst_func5 리스트에 정수 5를 추가했어요.

라인[3]~[4]는 lst_func5 리스트  맨 마지막에 요소로 5가 추가되었어요.

라인[5]는 append() 함수에 매개변수로 리스트 ['a', 'b']를 전달해서 리스트 내 요소로 추가했어요.

라인[6]~[7]은 lst_func5 리스트 맨 마지막에 요소로 ['a', 'b']가 추가되었어요.

 

 

  ▶ pop()함수 - 리스트 요소 꺼내기

pop()함수는 리스트 요소를 꺼낼 수 있어요. 매개변수를 전달하지 않으면 리스트 내 맨 마지막에 존재하는 요소를 꺼내와요. 매개변수로 리스트 내 요소 값을 전달하면 해당 요소 값을 꺼내와요.

1
2
3
4
5
6
>>> lst_func6 = [123]
>>> lst_func6.pop()
3
>>> lst_func6
[12]
>>>
cs

라인[1]은 정수를 요소로 가지는 리스트를 생성해서 lst_func6 변수에 대입했어요.

라인[2]~[3]은 pop()함수를 사용해서 리스트 내 맨 마지막 값인 3을 꺼내왔어요. 함수에 매개변수를 전달하지 않았어요.

라인[4]~[5]은 pop()함수 사용으로 꺼내진 맨 마지막 요소 3은 리스트 내 요소에서 찾아볼 수 없어요. lst_func6 리스트를 출력해 보면 3이 꺼내졌기 때문에 [1, 2]만 출력되는 결과를 확인하실 수 있어요.

 

1
2
3
4
5
6
>>> lst_func7 = [123]
>>> lst_func7.pop(2)
2
>>> lst_func7
[13]
>>>
cs

라인[1]은 정수를 요소로 가지는 리스트를 생성하고 lst_func7 변수에 대입했어요.

라인[2]~[3]은 pop()함수에 매개변수 2를 전달해서 리스트 내 요소인 정수 2를 꺼냈어요.

라인[4]~[5]는 리스트 내 요소 2가 pop(2) 사용으로 꺼내졌기 때문에 lst_func7 리스트 내 요소는 [1, 3]만 남아서 출력되었어요.

 

 

  ▶ index()함수 - 리스트 요소 값 위치 반환

index()함수는 매개변수를 필수로 전달해야 해요. 매개변수로 리스트 내 요소 값을 전달하면 해당 요소 값의 순번(위치)을 반환해 주는 함수예요. 만약, 매개변수로 전달한 값이 리스트 내 요소에 존재하지 않는다면 오류를 발생시켜요.

1
2
3
4
5
6
7
8
>>> lst_func8 = [12345]
>>> lst_func8.index(4)
3
>>> lst_func8.index(7)
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
ValueError: 7 is not in list
>>>
cs

라인[1]은 정수를 요소로 가지는 리스트를 생성해서 변수 lst_func8에 대입했어요.

라인[2]~[3]는 index() 함수에 매개변수 4를 전달해서 리스트 내 요소 4의 순번(위치)인 3을 반환받았어요.

라인[4]~[7]은 index() 함수에 매개변수 7를 전달했어요. 리스트 내 요소에 7이 존재하지 않으므로 오류를 발생시켰어요.

 

 

  ▶ insert()함수 - 리스트 내 요소 삽입

insert()함수는 리스트 내 원하는 위치에 원하는 값을 해당 리스트의 요소로 삽입시켜 주는 함수예요. insert(값을 삽입할  리스트 위치, 리스트 요소로 삽입하고자 하는 값)과 같이 표현하여 사용해요.

리스트 함수 insert() 표현 방법
리스트 함수 insert() 표현 방법

 

1
2
3
4
5
6
7
8
>>> lst_func9 = [123]
>>> lst_func9.insert(07)
>>> lst_func9
[7123]
>>> lst_func9.insert(310)
>>> lst_func9
[712103]
>>>
cs

라인[1]은 정수를 요소로 갖는 리스트를 생성해서 lst_func9 변수에 대입했어요.

라인[2]는 insert()함수에 매개변수로 0과 7을 주었어요. 0은 리스트 내 맨 처음 위치이고, 7은 리스트 요소로 삽입하고자 하는 값이에요.

라인[3]~[4]는 lst_func9 리스트 맨 처음 위치에 7이 삽입되어 출력되었어요.

라인[5]는 insert()함수에 매개변수로 3과 10을 주었어요. 3은 리스트 내 4번째 자리이고, 10은 리스트 요소로 삽입하고자 하는 값이에요.

라인[6]~[7]은 lst_func9 리스트 4번째 자리에 10이 삽입되어 출력되었어요.

 

 

  ▶ remove()함수 - 리스트 내 요소 제거

remove()함수는 매개변수로 전달하는 값이 해당 리스트 내 요소로 존재한다면 해당 요소를 제거해 주는 함수예요. 전달하는 값이 리스트 내 요소로 2개 이상 존재한다면 리스트 내 위치 상 맨 처음에 존재하는 요소를 제거해 줘요. 만약, 전달하는 값이 요소로 존재하지 않는다면 오류를 발생시켜요. 

1
2
3
4
5
6
7
8
9
10
11
>>> lst_func10 = [7518108]
>>> lst_func10.remove(8)
>>> lst_func10
[751108]
>>> lst_func10.remove(8)
>>> lst_func10
[75110]
>>> lst_func10.remove(5)
>>> lst_func10
[7110]
>>>
cs

라인[1]은 정수를 요소로 가지는 리스트를 생성해서 lst_func10 변수에 대입했어요.

라인[2]는 remove() 함수에 매개변수 8을 전달했어요. lst_func10 리스트에는 요소 값 8이 2개 존재하고 있어요.  요소 값 8은 리스트 내 순번 3과 5에 존재하고 있어요. remove()함수는 리스트 내 요소 순번 3인 요소 값 8을 제거해 줘요.

라인[3]~[4]는 리스트 내 순번 3을 가지는 요소 값 8이 제거되어 [7, 5, 1, 10, 8]이 출력되었어요.

라인[5]는 remove()함수에 다시 8을 전달했어요. remove()함수는 리스트 내 요소로 마지막 남은 8을 제거해 줘요.

라인[6]~[7]은 리스트 내 요소 값 8이 제거되어 [7, 5, 1, 10]이 출력되었어요.

라인[8]~[10]은 리스트 내 요소 값 5가 제거되어 [7, 1, 10]이 출력되었어요.

 

 

  ▶ count()함수 - 리스트 요소 중 특정 값에 대한 개수 세기

count()함수는 매개변수로 전달된 값이 리스트 내 요소로 몇 개가 존재하는지 그 개수를 반환해 주는 함수예요. 매개변수로 전달된 값이 리스트 내 요소로 존재하지 않는다면 0을 반환해 줘요.

1
2
3
4
>>> lst_func11 = [1311241110]
>>> lst_func11.count(1)
5
>>>
cs

라인[1]은 정수를 요소로 갖는 리스트를 생성하고 lst_func11 변수에 대입했어요.

라인[2]~[3]는 count()함수에 매개변수로 1을 전달했어요. 리스트 내 요소 값으로 1이 몇 개나 있는지 그 개수를 세어 5를 반환했어요.

 

 

  ▶ extend()함수 - 리스트 확장

extend()함수는 리스트 내 맨 마지막 위치에 매개변수로 전달된 리스트를 합쳐주는 함수예요. 리스트 연산자 +와 동일한 기능을 해줘요.

1
2
3
4
5
>>> lst_func12 = [123]
>>> lst_func12.extend([45])
>>> lst_func12
[12345]
>>>
cs

라인[1]은 정수를 요소로 갖는 리스트를 생성하고 lst_func12 변수에 대입했어요.

라인[2]는 extend()함수에 리스트 [4, 5]를 매개변수로 전달했어요. extend()함수가 lst_func12 리스트 맨 뒤에 [4, 5]를 합쳐서 확장시켜 주었어요.

라인[3]~[4]은 [1, 2, 3] 리스트에 [4, 5]가 합쳐져서 확정된 결과를 확인할 수 있어요.

 

 

님들 오늘은 리스트 관련 함수 중에서 가장 기본적인 함수 9개를 살펴보았어요. 함수명을 보시면 어떠한 기능을 가진 함수인지 느낌이 오실 거예요. 님들 혹시나 해서 말씀드리는 건데요. 혹시 혹시 파이썬에 존재하는 모든 함수를 외우시려고 노력하시는 님이 계시다면 절대 그러시면 안 돼요. 아마 외우려고 하시다가 파이썬에 재미를 잃으실 수 있으니, 절대 그러시지 마세요. 파이썬에서 제공하는 함수는 자주 사용하면 할수록 익숙해져서 자동으로 외워질 거예요. 그리고 만약 모르는 함수나 기억이 나지 않는 함수는 구글링을 적극적으로 활용하셔서 사용법을 숙지하시고 님들이 작성하시는 프로그램에 코딩해 주시면 돼요. 제 강의를 처음부터 보신 분이나 파이썬을 조금 공부하신 분이라면 파이썬이 오픈 소스인 거 알고 계실 거예요. 오픈 소스이므로 전부 공개되어 있어요. 파이썬 문법만 마스터하시면 여러분이 필요로 하는 함수나 라이브러리 또는 비슷한 로직 등을 잘 찾으셔서 여러분이 작성 중인 프로그램에 녹이시면 되는 거예요. 그러니 제 강의 잘 따라오시면서 파이썬 문법 꼭 마스터하시길 바랄게요. 오늘은 여기까지 할게요.

반응형