본문 바로가기

프로그래밍 언어/파이썬

파이썬 리스트 내장 함수 정리, 효율적인 데이터 관리

파이썬 리스트 내장 함수 정리, 효율적인 데이터 관리

파이썬은 데이터를 다루는 데 있어 리스트(List)를 매우 자주 활용합니다. 리스트는 단순한 데이터 집합 그 이상으로, 다양한 내장 함수를 통해 동적이고 유연한 처리를 가능하게 해줍니다. 이 글에서는 단순한 나열을 넘어서, 각 리스트 내장 함수의 활용도와 실제 응용 방법까지 짚어보며 실무 중심의 통찰력을 제공합니다.

 

 

목차

  1. append(): 리스트의 끝에 원소 추가하기
  2. extend(): 리스트 병합의 정석
  3. insert(): 원하는 위치에 삽입하기
  4. remove(): 값으로 원소 삭제
  5. pop(): 원소 꺼내기와 삭제를 동시에
  6. sort(): 정렬의 유연성
  7. 리스트 컴프리헨션: 가장 파이썬다운 반복

 

1. append(): 리스트의 끝에 원소 추가하기

append()는 리스트의 가장 끝에 새로운 요소를 추가하는 함수입니다. 리스트를 큐(Queue)처럼 사용할 때도 자주 활용됩니다.

lst = [1, 2, 3]
lst.append(4)
print(lst)  # [1, 2, 3, 4]
  
  • 인자는 오직 하나만 받을 수 있습니다.
  • 복잡한 구조도 한 번에 추가됩니다 (ex. 리스트, 튜플 등).
  • 기존 리스트를 변경합니다 (원본 수정).

 

 

 

2. extend(): 리스트 병합의 정석

extend()는 다른 리스트(또는 반복 가능한 객체)의 요소를 하나씩 풀어서 현재 리스트에 추가합니다.

a = [1, 2]
b = [3, 4]
a.extend(b)
print(a)  # [1, 2, 3, 4]
  
  • 반복 가능한(iterable) 객체라면 모두 확장 가능
  • append()와는 달리, 내부 요소가 개별 원소로 확장됨

 

 

 

3. insert(): 원하는 위치에 삽입하기

insert(index, value)는 특정 인덱스에 값을 삽입합니다. 중간에 데이터를 끼워 넣을 때 매우 유용합니다.

인자 설명
index 삽입할 위치
value 삽입할 값
lst = ['a', 'b', 'd']
lst.insert(2, 'c')
print(lst)  # ['a', 'b', 'c', 'd']
  

 

 

 

4. remove(): 값으로 원소 삭제

remove()는 리스트에서 특정 값을 찾아 첫 번째 항목을 삭제합니다.

주의: 값이 존재하지 않으면 ValueError 예외가 발생합니다.

lst = [1, 2, 3, 2]
lst.remove(2)
print(lst)  # [1, 3, 2]
  

 

 

 

 

5. pop(): 원소 꺼내기와 삭제를 동시에

pop([index])는 지정된 위치의 원소를 반환하고 리스트에서 제거합니다. 인덱스를 생략하면 마지막 항목이 제거됩니다.

  • 스택(후입선출 구조) 구현 시 자주 활용
  • 반환값이 있어 유용함
lst = [10, 20, 30]
value = lst.pop()
print(value)  # 30
print(lst)    # [10, 20]
  

 

 

 

6. sort(): 정렬의 유연성

sort()는 리스트를 제자리에서 정렬합니다. 다양한 정렬 옵션을 제공하며, 실제 정렬 기준을 커스터마이징할 수 있습니다.

names = ['Tom', 'jerry', 'Alice']
names.sort(key=str.lower)
print(names)  # ['Alice', 'jerry', 'Tom']
  
  • key: 정렬 기준 함수
  • reverse=True: 내림차순 정렬

 

 

 

7. 리스트 컴프리헨션: 가장 파이썬다운 반복

내장 함수는 아니지만, 리스트를 다룰 때 가장 자주 쓰이는 문법입니다. 리스트 컴프리헨션은 한 줄로 리스트를 생성하는 방법으로, 가독성과 효율을 모두 잡을 수 있습니다.

squares = [x**2 for x in range(5)]
print(squares)  # [0, 1, 4, 9, 16]
  
  • 조건문 포함 가능: [x for x in lst if x > 0]
  • 중첩 루프도 표현 가능