파이썬 리스트 마스터하기: Append, 정렬, 길이 & 리스트 컴프리헨션 실전 가이드
파이썬 리스트란 무엇인가?
파이썬 리스트는 정수, 문자열, 실수, 심지어 다른 리스트까지 어떤 타입의 객체든 담을 수 있는 다용도 컨테이너입니다. 대괄호 []로 표기하며, 괄호 ()를 사용하는 튜플과 구별됩니다. 튜플과 달리 리스트는 가변(mutable)입니다: 생성 후에도 요소를 추가, 제거, 변경할 수 있습니다.
이 가이드에서 배울 내용
- 파이썬 리스트 이해하기
- 동질적/이질적 리스트 예시
- 요소 접근, 슬라이싱, 업데이트
- 항목 삭제와 추가
- 내장 리스트 메서드
- 효율적인 코드를 위한 루핑과 컴프리헨션
- 리스트 정렬과 뒤집기
파이썬 리스트 예시
리스트는 동질적(모든 요소가 같은 타입) 또는 이질적(타입 혼합)일 수 있습니다. 명확한 예시:
# 동질적 리스트
int_list = [1, 2, 3, 8, 33]
animal_list = ['dog', 'cat', 'goat']
name_list = ['John', 'Travis', 'Sheila']
float_list = [2.2, 4.5, 9.8, 10.4]
# 이질적 리스트
mixed_list_1 = [2, 'cat', 34.33, 'Travis']
mixed_list_2 = [2.22, 33, 'pen']
리스트 내 값 접근하기
파이썬 리스트는 0-기반 인덱스를 사용합니다. 음수 인덱스 -1은 마지막 요소를 가리킵니다.
items = [3, 22, 30, 5.3, 20]
print(items[0]) # 3
print(items[1]) # 22
print(items[-1]) # 20
파이썬 리스트 슬라이싱
슬라이싱은 시작:끝 구문으로 부분 시퀀스를 추출하며, 끝은 포함되지 않습니다.
items = [3, 22, 30, 5.3, 20]
print(items[:]) # 모든 요소
print(items[1:3]) # [22, 30]
print(items[:4]) # [3, 22, 30, 5.3]
print(items[2:-1]) # [30, 5.3]
리스트 업데이트하기
인덱스에 새 값을 할당하여 요소를 수정합니다.
subjects = ['physics', 'chemistry', 'mathematics']
subjects[0] = 'biology'
print(subjects) # ['biology', 'chemistry', 'mathematics']
리스트 요소 삭제하기
세 가지 일반적인 접근법:
list.remove(값) – 첫 번째 일치하는 값 제거
list.pop(인덱스) – 주어진 인덱스의 요소를 제거하고 반환
del list[인덱스] – 인덱스의 요소를 반환 없이 삭제
nums = [3, 5, 7, 8, 9, 20]
nums.remove(3) # [5, 7, 8, 9, 20]
nums.pop(2) # 8 제거
# del nums[0] # 5를 삭제
리스트 요소 추가하기
append() 메서드는 항목을 리스트 끝에 추가합니다.
values = [3, 5, 7, 8, 9, 20]
values.append(3.33)
values.append('cats')
print(values) # [3, 5, 7, 8, 9, 20, 3.33, 'cats']
내장 리스트 함수와 메서드
len(list) – 요소 개수
max(list), min(list) – 최댓값/최솟값
list(tuple) – 튜플을 리스트로 변환
list.append(item) – 끝에 추가
list.pop(index) – 인덱스로 제거
list.remove(item) – 값으로 제거
list.reverse() – 제자리에서 뒤집기
list.index(item) – 첫 번째 발생 위치 인덱스
sum(list) – 숫자 항목 합계
list.sort() – 오름차순 정렬; list.sort(reverse=True)로 내림차순
values = [1, 7, 9, 3, 5]
values.sort()
print(values) # [1, 3, 5, 7, 9]
values.sort(reverse=True)
print(values) # [9, 7, 5, 3, 1]
리스트 순회하기
for 루프로 요소를 순회하며, 각 항목을 수정하거나 새 리스트를 구성할 수 있습니다.
nums = [10, 20, 30, 40, 50, 60, 70]
# 각 요소에 5 더하기 (원본 리스트는 변경되지 않음)
for n in nums:
print(n + 5)
# 슬라이스에서 새 리스트 만들기
new_list = []
for n in nums[2:]:
new_list.append(n)
print(new_list) # [30, 40, 50, 60, 70]
리스트 컴프리헨션
리스트 컴프리헨션은 이터러블에서 리스트를 생성하는 간결한 문법을 제공합니다. 동등한 for 루프보다 빠르고 읽기 쉽습니다.
# 1부터 9까지 제곱수
squares = [x**2 for x in range(1, 10)]
print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81]
요약
- 파이썬 리스트는 가변적이고 순서가 있는 컬렉션입니다.
- 인덱스를 사용해 접근, 슬라이싱, 업데이트합니다.
- 내장 메서드로 일반적인 작업 단순화: append, remove, pop, sort, reverse 등.
- 리스트 컴프리헨션으로 우아하고 효율적인 리스트 생성이 가능합니다.
- 이 기초를 마스터하면 고급 파이썬 프로그래밍의 탄탄한 토대가 됩니다.