Programming

리스트 복사, 탐색, 추가·반전까지: Python 리스트 기본기 완전 정리

Lucas.Kim 2025. 12. 8. 09:59
반응형

파이썬(Python)에서 리스트(list)는 데이터 분석, 자동화, 웹 스크립트 등 다양한 작업에서 가장 많이 사용되는 자료 구조입니다. 초보자가 가장 자주 겪는 문제 중 하나는 “리스트를 다른 변수에 저장했는데 왜 같이 변경될까?” 하는 얕은 복사(shallow copy) 문제입니다.
본 글에서는 리스트 복사 방법, index·count 같은 탐색 기능, append·reverse 같은 수정 기능까지 실전 예제 중심으로 정리합니다.

파이썬(Python)에서 리스트(list)는 데이터 분석, 머신러닝, 웹 스크립트 등 다양한 작업에서 가장 많이 사용되는 자료 구조입니다. 특히 초보자가 자주 어려워하는 개념이 리스트 복사와 수정 시 원본에 영향을 주는 문제입니다.
본 글에서는 리스트의 기본 개념부터, 얕은 복사, index·count 활용, append·reverse 사용법까지 실전 중심으로 정리합니다.

1. 리스트(List)란 무엇인가?

리스트는 파이썬에서 여러 값을 하나의 변수 안에 순서 있게 저장할 수 있는 자료 구조입니다.
예를 들어, 방의 면적을 각각 따로 변수에 저장하면 비효율적이지만, 리스트를 사용하면 한 번에 묶어서 관리할 수 있습니다.

리스트의 주요 특징은 다음과 같습니다.

 

  • 순서가 있다(Ordered)
    저장된 요소는 인덱스(0부터 시작)를 통해 접근할 수 있습니다.
  • 변경 가능하다(Mutable)
    값 변경, 삽입, 삭제가 자유롭게 가능합니다.
  • 다양한 자료형을 함께 저장할 수 있다
    숫자, 문자열, 다른 리스트까지 모두 한 리스트 안에 포함할 수 있습니다.
areas = [11.25, 18.0, 20.0, 10.75, 9.50]

 

2. 리스트를 다른 변수에 저장할 때 원본에 영향을 주지 않게 만드는 방법

리스트는 mutable이기 때문에 단순히 변수에 다시 대입하면 두 변수가 같은 리스트를 공유하게 됩니다.

areas_copy = areas  # 같은 리스트를 가리키는 alias 생성

이 코드는 새로운 리스트를 만드는 것이 아니라, 같은 리스트 객체를 두 변수가 함께 가리키도록(aliasing) 만듭니다. 따라서 하나를 수정하면 다른 하나도 바뀌는 문제가 발생합니다.

이를 해결하는 가장 간단한 방식은 슬라이싱을 이용한 얕은 복사(shallow copy) 입니다.

이 상태에서 변경하면 원본까지 함께 바뀝니다. 이를 피하려면 리스트의 얕은 복사(shallow copy) 를 사용해야 합니다.

# Create list areas
areas = [11.25, 18.0, 20.0, 10.75, 9.50]

# Shallow copy using slicing
areas_copy = areas[:]  # 완전히 새로운 리스트 생성

# Modify the copy
areas_copy[0] = 5.0

# Print original
print(areas)  # 원본은 유지됩니다.

슬라이싱을 사용하면 새로운 객체가 생성되어 원본과 독립적으로 작동합니다.

3. 리스트에서 값의 위치 찾기: index(), count()

값을 찾아야 할 때 사용하는 기본 함수입니다.

areas = [11.25, 18.0, 20.0, 10.75, 9.50]

print(areas.index(20.0))  # 20.0이 처음 나타나는 인덱스
print(areas.count(9.50))  # 9.50 등장 횟수
  • index(value) → 값이 나타나는 첫 번째 위치
  • count(value) → 값이 몇 번 등장했는지 반환

데이터 분석에서 특정 값의 위치, 등장 빈도 파악에 매우 유용합니다.

4. 리스트 요소 추가하기와 순서 뒤집기: append(), reverse()

areas = [11.25, 18.0, 20.0, 10.75, 9.50]

# Add new areas
areas.append(24.5)
areas.append(15.45)

print(areas)

# Reverse the list order
areas.reverse()
print(areas)
  • append() → 리스트 끝에 요소 추가
  • reverse() → 요소 순서를 역순으로 정렬

데이터 가공 과정에서 자주 사용되는 기본 기능입니다.

 

결론

리스트는 파이썬에서 가장 기본이면서도 강력한 자료 구조입니다. 순서·변경 가능·다양한 타입 저장 등 유연한 특성을 가지고 있어 데이터 처리, 분석, 자동화 프로젝트에서 필수적으로 사용됩니다.
본 글에서 소개한 리스트 복사 방식, index/count 활용법, append/reverse 메서드는 실무와 학습 모두에서 자주 등장하므로 반드시 숙지하시기 바랍니다.

반응형