본문 바로가기

Python

파이썬의 데이터 구조: 리스트, 튜플, 세트, 딕셔너리의 차이점

파이썬에서 자주 사용하는 네 가지 데이터 구조인 리스트, 튜플, 세트, 딕셔너리에 대해 알아보겠습니다. 이 네 가지 데이터 구조의 특징과 차이점을 제대로 이해하면, 파이썬 프로그래밍이 훨씬 더 효율적이고 재미있게 느껴질 것입니다.

1. 리스트(List)

  • 정의: 순서가 있는 변경 가능한 항목의 집합입니다.
  • 특징: 중복된 값을 포함할 수 있으며, 인덱스를 통해 접근합니다.
  • 예제:
  • fruits = ["딸기", "키위", "포도"] fruits.append("오렌지") print(fruits[2]) # 출력: 포도

2. 튜플(Tuple)

  • 정의: 순서가 있는 변경 불가능한 항목의 집합입니다.
  • 특징: 리스트와 비슷하지만 한번 생성하면 내부의 값을 변경할 수 없습니다.
  • 예제:
  • coordinates = (39.5665, 126.9780) # coordinates[0] = 38.1234 # 오류 발생

3. 세트(Set)

  • 정의: 순서가 없는 유일한 항목의 집합입니다.
  • 특징: 중복된 값을 가질 수 없으며, 인덱스로 접근할 수 없습니다. 주로 중복 제거나 항목의 존재 유무를 확인할 때 사용됩니다.
  • 예제:
  • unique_numbers = {1, 2, 2, 3, 4} print(unique_numbers) # 출력: {1, 2, 3, 4}

4. 딕셔너리(Dictionary)

  • 정의: 키와 값을 가진 항목들의 집합입니다.
  • 특징: 키는 유일해야 하며, 키를 통해 값을 접근합니다.
  • 예제:
  • student = { "name": "하츄핑", "age": 20, "major": "티니핑공학" } print(student["name"]) # 출력: 하츄핑

5. 다른 언어의 자료구조과 다른 점

파이썬의 리스트, 튜플, 세트, 딕셔너리는 대부분의 프로그래밍 언어에 있는 기본적인 자료구조나 그와 유사하지만 그러나 파이썬의 구현 방식이나 특성이 다른 언어와 약간 다를 수 있습니다.

  1. 리스트(List): 다른 언어의 배열(array) 또는 리스트와 유사합니다. 다만, 파이썬의 리스트는 동적 배열로서 크기 변경이 유연하며 여러 타입의 데이터를 동시에 저장할 수 있습니다.
  2. 튜플(Tuple): 몇몇 언어에서도 튜플과 유사한 자료형을 찾아볼 수 있습니다. 예를 들어, Swift의 Tuple, Haskell의 Tuple 등이 있습니다. 그러나 모든 프로그래밍 언어에 튜플이 존재하는 것은 아닙니다.
  3. 세트(Set): 대부분의 프로그래밍 언어에서 집합 자료형을 제공합니다. Java의 HashSet, JavaScript의 Set 등이 이에 해당합니다.
  4. 딕셔너리(Dictionary): 키-값 쌍을 저장하는 자료형으로, 다른 언어에서는 '맵' 또는 '해시맵' 등의 이름으로 존재합니다. 예로 Java의 HashMap, JavaScript의 Object, Ruby의 Hash 등이 있습니다.

결론

파이썬의 데이터 구조는 그 특성에 따라 다양한 상황에서 사용됩니다. 리스트와 튜플은 순서가 있는 데이터를 다룰 때, 세트는 중복 없이 데이터를 관리할 때, 딕셔너리는 키와 값의 쌍으로 정보를 저장할 때 주로 사용됩니다. 각 데이터 구조의 특징을 잘 이해하고 적절한 상황에서 사용하면 프로그래밍의 효율성을 크게 높일 수 있습니다.