2 minute read

파이썬 List와 Tuple 완벽 분석: 순서 있는 데이터 관리의 핵심, 초보자도 쉽게 이해하는 가이드

파이썬은 다양한 자료형을 제공하여 효율적인 데이터 관리를 지원합니다. 그중에서도 List와 Tuple은 순서 있는 데이터를 다루는 데 필수적인 자료형입니다. 이 글에서는 List와 Tuple의 개념, 사용법, 차이점 등을 자세히 설명하여 초보자도 쉽게 이해하고 활용할 수 있도록 돕겠습니다.

1. List(리스트): 변경 가능한 순서 있는 데이터 집합

1.1 List란 무엇인가?

List는 여러 개의 값을 순서대로 저장하는 자료형입니다. List는 변경 가능(mutable)하며, 다양한 자료형의 값을 함께 저장할 수 있습니다. List는 대괄호([])를 사용하여 생성하고, 각 요소는 쉼표(,)로 구분합니다.

1.2 List 생성 및 기본 사용법

# List 생성
my_list = [1, 2, 3, "hello", True]

# 요소 접근 (인덱싱)
print(my_list[0])  # 출력: 1
print(my_list[-1]) # 출력: True

# 요소 수정
my_list[1] = 10
print(my_list) # 출력: [1, 10, 3, "hello", True]

# 요소 추가
my_list.append(5)
print(my_list) # 출력: [1, 10, 3, "hello", True, 5]

# 요소 삭제
del my_list[3]
print(my_list) # 출력: [1, 10, 3, True, 5]

1.3 List 관련 유용한 메서드

  • append(x): List의 맨 뒤에 요소 x를 추가합니다.
  • insert(i, x): List의 인덱스 i에 요소 x를 삽입합니다.
  • remove(x): List에서 첫 번째로 나타나는 요소 x를 삭제합니다.
  • pop(i): List의 인덱스 i에 있는 요소를 삭제하고 반환합니다. i를 생략하면 마지막 요소를 삭제하고 반환합니다.
  • index(x): List에서 요소 x의 인덱스를 반환합니다.
  • count(x): List에서 요소 x의 개수를 반환합니다.
  • sort(): List를 정렬합니다.
  • reverse(): List의 순서를 뒤집습니다.
my_list = [3, 1, 4, 1, 5, 9, 2]

my_list.sort()
print(my_list) # 출력: [1, 1, 2, 3, 4, 5, 9]

my_list.reverse()
print(my_list) # 출력: [9, 5, 4, 3, 2, 1, 1]

1.4 List 활용 예시

List는 다양한 상황에서 활용됩니다.

  • 데이터 저장 및 관리: 여러 개의 데이터를 순서대로 저장하고 관리합니다.
  • 반복문 처리: for 루프를 사용하여 List의 모든 요소를 순회합니다.
  • 함수 인자 및 반환 값: 함수에 List를 인자로 전달하거나 반환 값으로 사용할 수 있습니다.
# 반복문 예시
my_list = [1, 2, 3, 4, 5]
for item in my_list:
    print(item)

# 함수 예시
def get_even_numbers(numbers):
    even_numbers = []
    for number in numbers:
        if number % 2 == 0:
            even_numbers.append(number)
    return even_numbers

my_list = [1, 2, 3, 4, 5, 6]
even_numbers = get_even_numbers(my_list)
print(even_numbers) # 출력: [2, 4, 6]

2. Tuple(튜플): 변경 불가능한 순서 있는 데이터 집합

2.1 Tuple이란 무엇인가?

Tuple은 List와 유사하지만, 변경 불가능(immutable)한 순서 있는 데이터 집합입니다. Tuple은 소괄호(())를 사용하여 생성하고, 각 요소는 쉼표(,)로 구분합니다.

2.2 Tuple 생성 및 기본 사용법

# Tuple 생성
my_tuple = (1, 2, 3, "hello", True)

# 요소 접근 (인덱싱)
print(my_tuple[0])  # 출력: 1
print(my_tuple[-1]) # 출력: True

# Tuple은 요소 수정, 추가, 삭제가 불가능합니다.
# my_tuple[1] = 10 (오류 발생)

2.3 Tuple 관련 유용한 메서드

  • index(x): Tuple에서 요소 x의 인덱스를 반환합니다.
  • count(x): Tuple에서 요소 x의 개수를 반환합니다.
my_tuple = (1, 2, 3, 1, 5)

print(my_tuple.index(3))  # 출력: 2
print(my_tuple.count(1))  # 출력: 2

2.4 Tuple 활용 예시

Tuple은 다음과 같은 상황에서 유용하게 사용됩니다.

  • 변경되면 안 되는 데이터 저장: 프로그램 실행 중에 값이 변경되면 안 되는 데이터를 저장합니다.
  • 함수 반환 값: 여러 개의 값을 반환하는 함수에서 Tuple을 사용할 수 있습니다.
  • 딕셔너리 키: 딕셔너리의 키로 사용할 수 있습니다.
# 함수 예시
def get_coordinates():
    return (37.5665, 126.9780) # 서울 좌표

coordinates = get_coordinates()
print(coordinates) # 출력: (37.5665, 126.9780)

3. List와 Tuple의 차이점

특징 List Tuple
변경 가능성 변경 가능(mutable) 변경 불가능(immutable)
생성 방법 [] ()
요소 추가/삭제/수정 가능 불가능
메모리 사용량 Tuple보다 큼 List보다 작음
속도 Tuple보다 느림 List보다 빠름

4. 결론

List와 Tuple은 순서 있는 데이터를 다루는 데 필수적인 자료형입니다. List는 변경 가능한 데이터를 다룰 때, Tuple은 변경되면 안 되는 데이터를 다룰 때 유용하게 사용할 수 있습니다. 각 자료형의 특징과 활용법을 익히고, 필요에 따라 적절한 자료형을 선택하여 사용하면 더욱 효율적인 파이썬 코드를 작성할 수 있습니다.

Top