리스트란?
리스트는 한 번에 여러 값을 넣을 수 있는 파이썬의 자료형이다.
추가, 수정, 삭제가 가능하고 인덱싱, 슬라이싱이 가능하는 특징이 있다.
리스트의 기본 사용
먼저 빈 리스트를 생성하는 방법에 대해 알아보자.
빈 리스트는 대괄호 또는 list함수를 통해 생성할 수 있다.
# 빈 리스트 생성하기
li1 = []
li2 = list()
print(li1, type(li1))
print(li2, type(li2))
[] <class 'list'>
[] <class 'list'>
그다음으로는 리스트 안에 값을 넣어보자.
리스트는 밑 코드처럼 대괄호를 사용하며 대괄호 안에 콤마로 값을 구분하여 넣어준다.
# 리스트에 값 넣기
li1 = [1, 3.14, 'Hello', True]
print(li1, type(li1))
[1, 3.14, 'Hello', True] <class 'list'>
만약 리스트에 일정한 규칙이 있는 숫자를 넣고 싶다면 range함수를 사용할 수 있다.
range함수의 괄호에는 (시작값 : 마지막 값 : 스텝값)이 들어가며 시작값부터 (마지막 값 -1)까지 스텝값만큼 뛰어넘으며 수를 생성한다.
# range()함수로 리스트 만들기
li = list(range(1, 10, 2))
print(li, type(li))
[1, 3, 5, 7, 9] <class 'list'>
인덱싱과 슬라이싱
이 개념은 뒤에 나올 튜플에도 똑같이 적용되고 나중에 많이 사용되기 때문에 정말 중요하다.
리스트와 튜플은 여러 값이 들어있는데 맨 왼쪽부터 0번으로 시작해 마지막 값까지 번호가 매겨진다.
이렇게 매겨진 번호를 통해 특정한 값을 얻는 것이 인덱싱, 범위를 정해서 원하는 값들을 얻는 것이 슬라이싱이다.
인덱싱은 리스트명[인덱스번호]로 할 수 있고 슬라이싱은 리스트명[시작값:마지막값:스텝값]으로 할 수 있다.
# 인덱싱
li = list(range(10))
print(li)
print(li1[0])
print(li[4])
print(li[8])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1
4
8
# 슬라이싱
li = list(range(10))
print(li)
print(li[3:8:2])
print(li[:8:2]) # 처음부터 시작이면 시작값 생략 가능
print(li[3::2]) # 마지막 값이 끝값이면 마지막 값 생략 가능
print(li[3:8]) # 스텝값이 1이면 생력가능
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 5, 7]
[0, 2, 4, 6]
[3, 5, 7, 9]
[3, 4, 5, 6, 7]
리스트의 함수들
리스트는 여러 값들이 모여있기 때문에 특정한 값을 추가, 수정, 삭제할 때 사용하는 함수들이 따로 있다.
밑에서는 그러한 함수들을 소개하려고 한다.
1. 리스트 요소에 대한 함수들
처음으로 소개할 함수는 요소의 개수를 반환하는 함수이다.
# len() : 요소 개수 반환
li = [1, 2, 3, 4, 5]
print(len(li))
5
다음으로는 요소들의 합을 반환하는 함수이다.
# sum() : 요소들의 합 반환
li = [1, 2, 3.14, 4, 5]
print(sum(li))
15.14
다음은 특정 요소의 인덱스 번호를 반환하는 함수이다.
# index() : 특정 요소의 인덱스 번호 반환
li = [1, 2, 3, 4, 5]
print(li.index(2))
print(li.index(4))
1
3
다음은 특정 요소의 개수를 반환하는 함수이다.
# count() : 특정 요소의 개수 반환
li = [1, 1, 1, 3, 3]
print(li.count(1))
print(li.count(3))
3
2
다음은 in 연산자를 사용하여 특정값이 요소들 중 있는지 알아본다.
# in : 요소들 중 특정값의 존재여부를 논리형으로 반환
li = [1, 2, 3, 4, 5]
print(3 in li)
print(6 in li)
print(2 not in li)
print(8 not in li)
True
False
False
True
다음은 요소들 중 최대값과 최소값을 반환하는 함수에 대해 알아본다.
# max() : 요소 중 가장 큰 값을 반환
li = [1, 2, 3, 4, 5]
print(max(li))
5
# min() : 요소 중 가장 작은 값을 반환
li = [1, 2, 3, 4, 5]
print(min(li))
1
2. 리스트 추가 함수
처음으로 알아볼 append함수는 리스트의 마지막에 요소를 추가한다.
# append() : 리스트의 마지막에 요소를 추가
li = [1, 2, 3, 4, 5]
li.append(6)
print(li)
[1, 2, 3, 4, 5, 6]
다음은 insert함수인데 이 함수는 원하는 위치에 원하는 값을 넣을 수 있다.
insert(인덱스번호, 값)으로 사용한다.
# insert() : 리스트의 원하는 곳에 원하는 값을 추가
li = [1, 2, 3, 4, 5]
li.insert(2, 6)
print(li)
[1, 2, 6, 3, 4, 5]
다음은 extend함수로 한 리스트를 다른 리스트에 연결한다.
+연산자로도 똑같은 결과를 낼 수 있다.
# extend() : 한 리스트에 다른 리스트를 연결
li1 = [1, 2, 3, 4]
li2 = [5, 6, 7, 8]
li3 = li1 + li2
li1.extend(li2)
print(li1)
print(li3)
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
3. 리스트 삭제 함수
pop함수와 del은 원하는 값을 삭제할 수 있으며 pop함수의 괄호 안이 비어있으면 마지막 요소를 삭제한다.
# pop(), del[] : 원하는 요소를 삭제
li = [1, 2, 3, 4, 5]
li.pop() # 마지막 값 삭제
print(li)
li = [1, 2, 3, 4, 5]
li.pop(3) # 인덱스번호가 3인 요소 삭제
print(li)
li = [1, 2, 3, 4, 5]
del li[3]
print(li) # pop(3)과 같은 역할로 인덱스번호가 3인 요소 삭제
[1, 2, 3, 4]
[1, 2, 3, 5]
[1, 2, 3, 5]
다음은 원하는 값을 찾아 삭제할 수 있는 remove함수이며 원하는 값이 여러 개이면 앞에 값을 우선적으로 삭제한다.
# remove() : 원하는 값을 찾아 삭제 가능, 값이 여러개일 경우 앞에 값을 우선 삭제
li = [1, 2, 3, 4, 5]
li.remove(3)
print(li)
li = [1, 1, 1, 3, 4]
li.remove(1) # 값이 여러개일 경우 앞에 값을 삭제
print(li)
[1, 2, 4, 5]
[1, 1, 3, 4]
다음으로는 모든 요소를 삭제하는 clear함수이다.
# clear() : 리스트의 모든 요소를 삭제
li = [1, 2, 3, 4, 5]
li.clear()
print(li)
[]
4. 리스트 정렬 함수
리스트는 수정이 가능하기 때문에 정렬 또한 가능하다.
정렬은 sort와 sorted함수로 가능하고 기본적으로는 오름차순, reverse = True로 설정하면 내림차순으로 정렬된다.
# sort : 리스트를 크기 순서대로 정렬한다.
li = [2, 1, 4, 8, 7]
li.sort()
print(li)
# 괄호 안에 reverse = True로 설정하면 내림차순이 된다.
li = [2, 1, 4, 8, 7]
li.sort(reverse = True)
print(li)
[1, 2, 4, 7, 8]
[8, 7, 4, 2, 1]
# sorted() : 리스트를 크기 순서대로 정렬한다.
li = [2, 1, 4, 8, 7]
print(sorted(li))
# 괄호 안에 reverse = True로 설정하면 내림차순이 된다.
li = [2, 1, 4, 8, 7]
print(sorted(li, reverse = True))
[1, 2, 4, 7, 8]
[8, 7, 4, 2, 1]
결론
이 글에서 알아본 리스트와 다음에 배울 튜플, 세트, 딕셔너리는 여러 값을 저장할 수 있는 자료형으로 매우 많이 사용된다.
그리고 이러한 자료형에 사용되는 함수들은 정말 많이 사용되니 기본적으로 알고 있자.
'Python > Foundation' 카테고리의 다른 글
07강. [Python]딕셔너리 (0) | 2025.02.01 |
---|---|
06강. [Python]튜플 (0) | 2025.02.01 |
04강. [Python]연산자 (0) | 2025.01.31 |
03강. [Python]자료형 (1) | 2025.01.31 |
02강. [Python]변수 (0) | 2025.01.31 |