Python
[Python][기초] 리스트(List)
codingbird1234
2025. 4. 9. 14:00
안녕하세요, codingbird입니다.
지난 시간까지 문자열에 대해서 좀 더 자세히 알아보았습니다.
이번 시간에는 리스트(List)에 대해서 알아보겠습니다.
1. 리스트(List)
리스트(List)란, 여러 값들을 순서대로 저장하는 자료형입니다.
- '순서대로' 저장하기 때문에, 문자열처럼 인덱스를 통해 각 요소에 접근할 수 있습니다.
- 또한 문자열과 같은 방식으로 슬라이싱도 가능합니다.
- 그리고 문자열처럼 더하기, 곱하기 연산이 가능합니다.
- 리스트에는 다양한 자료형의 값들을 자유롭게 넣을 수 있습니다.
아래 코드를 보겠습니다.
list1 = [1, 2, 3, "apple", "banana", 0.4 ] # 리스트 만들기 (다양한 자료형)
print(list1) # 리스트 프린트 하기
print("-" * 50)
# 리스트 인덱싱
print(list1[0]) # 인덱스 0의 값 출력 : 1
print(list1[3]) # 인덱스 3의 값 출력 : apple
print(list1[5]) # 인덱스 5의 값 출력 : 0.4
print("-" * 50)
# 리스트 슬라이싱
print(list1[1:3]) # 인덱스 1 ~ 2 출력
print(list1[:3]) # 처음 인덱스 ~ 인덱스 2 출력
print(list1[2:]) # 인덱스 2 ~ 마지막 인덱스 출력
print("-" * 50)
# 리스트 더하기
list2 = [1, 2, 3]
list3 = list1 + list2 # list1과 list2를 합친 list3
print(list3)
print("-" * 50)
# 리스트 곱하기
list4 = list2 * 4 # list2 4개를 합친 list4
print(list4)
다양한 자료형의 값을 담은 "list1"이라는 이름의 리스트를 만들었습니다.
리스트를 만들 때는 대괄호([])로 요소들을 감싸면 됩니다.
인덱스는 0부터 시작하기 때문에, list1의 인덱스 0 값은 첫 번째 요소인 1입니다.
슬라이싱의 경우, 기본적으로 (시작 인덱스)부터 (끝 인덱스 - 1)까지의 값들에 대한 리스트를 의미합니다.
2. 리스트에 대한 여러 가지 작업 (추가, 수정, 삭제 등등)
리스트에 대해서는, 아래와 같은 여러 가지 작업들이 가능합니다.
작업 종류 | 코드 작성 방법 | 설명 |
추가 | append(값) | 리스트 끝에 해당 값을 추가 |
추가 | insert(인덱스, 값) | 해당 인덱스에 해당 값을 추가 (해당 인덱스부터 기존 값들은 하나씩 뒤로 밀림) |
추가 | extend(다른 리스트) | 기존 리스트에 다른 리스트를 합침 |
수정 | a[인덱스] = 새 값 | 해당 인덱스의 값을 새 값으로 바꿈 |
삭제 | remove(값) | 해당 값을 찾아서 첫 번째로 만나는 값을 삭제 |
삭제 | pop() | 리스트 끝 값을 꺼내서 반환 (해당 끝 값은 리스트에서 사라짐) |
삭제 | pop(인덱스) | 해당 인덱스의 값을 꺼내서 반환 (해당 인덱스의 값은 리스트에서 사라짐) |
삭제 | clear() | 리스트 내의 모든 값을 삭제 (빈 리스트로 만들기) |
정렬 | sort() | 리스트 내의 값들을 오름차순으로 정렬 (순서 바뀜) |
정렬 | sort(reverse=True) | 리스트 내의 값들을 오름차순으로 정렬 (순서 바뀜) |
역순 | reverse() | 리스트 내의 값들의 순서를 뒤집음 (정렬 X) |
길이 확인 | len(리스트) | 리스트의 길이, 즉 리스트 내 요소들의 개수 |
포함 여부 | 어떤 값 in 리스트 | 어떤 값이 리스트 안에 있으면 True, 없으면 False |
포함 여부 | 어떤 값 not in 리스트 | 어떤 값이 리스트 안에 없으면 True, 있으면 False |
위치 확인 | index(값) | 해당 값이 있는 첫 번째 인덱스를 반환 |
아래 예시 코드를 통해 위 방법들을 확인해보세요!
# 숫자 리스트 만들기
print("리스트 생성 및 출력")
numbers = [5, 3, 4]
print(numbers)
print("-" * 50)
# 추가
print("추가")
numbers.append(4) # 리스트 끝에 4 추가
print(numbers) # [5, 3, 4, 4]
numbers.insert(2, 100) # 인덱스 2에 100을 삽입
print(numbers) # [5, 3, 100, 4, 4]
numbers.extend([100, 200]) # numbers에 [100, 200] 합침
print(numbers) # [5, 3, 100, 4, 4, 100, 200]
print("-" * 50)
# 수정
print("수정")
numbers[6] = 300 # 인덱스 6의 값을 300으로 설정 (200->300)
print(numbers) # [5, 3, 100, 4, 4, 100, 300]
print("-" * 50)
# 삭제
print("삭제")
numbers.remove(100) # 첫 번째 100만 삭제
print(numbers) # [5, 3, 4, 4, 100, 300]
numbers.pop() # 마지막 요소 꺼내기 (300 꺼내기)
print(numbers) # [5, 3, 4, 4, 100]
numbers.pop(1) # 인덱스 1의 요소 꺼내기 (3 꺼내기)
print(numbers) # [5, 4, 4, 100]
numbers2 = [1, 2, 3, 4] # numbers2 만들기
numbers2.clear() # numbers2의 모든 요소 삭제 -> 빈 리스트
print(numbers2) # []
print("-" * 50)
# 정렬
print("정렬")
numbers.sort() # 오름차순으로 정렬
print(numbers) # [4, 4, 5, 100]
numbers.sort(reverse=True) # 내림차순으로 정렬
print(numbers) # [100, 5, 4, 4]
print("-" * 50)
# 역순
print("역순")
numbers.reverse() # 요소 순서를 거꾸로 뒤집기
print(numbers) # [4, 4, 5, 100]
print("-" * 50)
# 길이 확인 (요소 개수)
print("길이 확인")
print("리스트의 길이 :", len(numbers)) # 리스트의 길이 : 4
print("-" * 50)
# 포함 여부
print("포함 여부")
print(5 in numbers) # numbers에 5가 있는가? True
print(1000 in numbers) # numbers에 1000이 있는가? False
print(500 not in numbers) # numbers에 500이 없는가? True
print(4 not in numbers) # numbers에 4가 없는가? False
print("-" * 50)
#위치 확인
print("위치 확인")
print("첫 번째 4의 인덱스:", numbers.index(4)) # 첫 번째 4의 인덱스 : 0
이렇게 리스트(List)에 대해 알아보았습니다.
파이썬에는 리스트와 비슷한 자료형들이 많이 있습니다.
다음 시간에도, 그러한 자료형들에 대해 계속해서 배워보도록 하겠습니다.
이번 시간도 수고하셨습니다~