FRONTMANFRONTMAN
  • 태그
  • 방명록
  • 글쓰기
  • 관리자
  • HOME
  • 태그
  • 방명록
Python 리스트(list)와 튜플(tuple)
hahekaku
Python 리스트(list)와 튜플(tuple)Language/Python2023. 10. 22. 10:01@hahekaku
Table of Contents

파이썬에서 리스트(list)와 튜플(tuple)은 가장 기본적이고 자주 사용되는 자료구조입니다. 이 둘은 데이터의 저장 및 처리를 위한 컨테이너 역할을 하지만, 동작 방식과 용도에서 차이가 있습니다. 이 글에서는 리스트와 튜플의 차이점을 구체적으로 살펴보고, 어떤 상황에서 적합한지를 이해할 수 있도록 설명하겠습니다.

리스트(List)란?

리스트는 파이썬의 가변형(mutable) 자료구조로, 데이터를 순서대로 저장할 수 있는 컬렉션입니다. 가변형이란 리스트의 내용을 수정할 수 있음을 의미합니다.

리스트의 주요 특징

  1. 가변성: 리스트는 생성 후에도 요소를 추가, 삭제, 변경할 수 있습니다.
  2. 순서 유지: 리스트는 삽입된 순서를 유지하며, 인덱스를 통해 접근할 수 있습니다.
  3. 다양한 데이터 타입 허용: 리스트에는 문자열, 숫자, 객체 등 다양한 타입의 데이터를 함께 저장할 수 있습니다.
  4. 활용 사례: 데이터의 동적 변경이 필요한 경우에 적합합니다.

리스트 예제

# 쇼핑 목록 관리 예제
shopping_list = ['사과', '바나나', '우유']

# 항목 추가
shopping_list.append('빵')
print(shopping_list)  # ['사과', '바나나', '우유', '빵']

# 항목 변경
shopping_list[1] = '포도'
print(shopping_list)  # ['사과', '포도', '우유', '빵']

# 항목 삭제
shopping_list.remove('우유')
print(shopping_list)  # ['사과', '포도', '빵']

튜플(Tuple)이란?

튜플은 파이썬의 불변형(immutable) 자료구조로, 데이터의 변경이 필요 없는 경우 사용됩니다. 불변형이란 한 번 생성된 튜플의 내용을 수정할 수 없음을 의미합니다.

튜플의 주요 특징

  1. 불변성: 생성된 후 요소를 추가하거나 삭제, 변경할 수 없습니다.
  2. 순서 유지: 튜플도 리스트와 마찬가지로 순서를 유지합니다.
  3. 다양한 데이터 타입 허용: 튜플도 리스트처럼 여러 데이터 타입을 함께 저장할 수 있습니다.
  4. 활용 사례: 데이터가 고정된 경우, 데이터의 안정성을 보장하고자 할 때 사용됩니다.

튜플 예제

# 좌표 데이터 저장 예제
coordinate = (37.5665, 126.9780)  # 서울의 위도와 경도

# 튜플의 값은 변경 불가
# coordinate[0] = 38.1234  # TypeError 발생

# 튜플은 읽기 전용으로 활용
latitude, longitude = coordinate
print(f"위도: {latitude}, 경도: {longitude}")

리스트와 튜플의 차이점 비교

특성 리스트(list) 튜플(tuple)
가변성 가변형(mutable) 불변형(immutable)
데이터 변경 요소 추가/삭제/변경 가능 변경 불가
메모리 효율성 비교적 비효율적 상대적으로 효율적
사용 사례 데이터의 동적 변경 필요 데이터가 고정된 경우 사용
생성 속도 느림 빠름

리스트와 튜플 선택 기준

리스트를 사용하는 경우

  • 데이터의 크기와 내용이 유동적으로 변경될 가능성이 있는 경우
  • 순차적 작업, 데이터 필터링 및 조작이 필요한 경우

튜플을 사용하는 경우

  • 데이터가 고정된 값일 때(예: 좌표, 고정 설정값)
  • 데이터를 안전하게 보호하거나 변경이 필요 없는 경우
  • 키 값으로 사용할 때(튜플은 hashable한 특성을 가지므로 딕셔너리 키로 활용 가능)

리스트와 튜플의 성능 차이

리스트와 튜플은 성능 면에서도 차이가 있습니다. 튜플은 불변형이기 때문에 리스트보다 메모리 사용량이 적으며, 생성 속도도 빠릅니다. 아래는 리스트와 튜플의 생성 속도를 비교하는 코드입니다.

성능 비교 코드

import timeit

# 리스트 생성 속도 측정
list_time = timeit.timeit("x = [1, 2, 3, 4, 5]", number=1000000)

# 튜플 생성 속도 측정
tuple_time = timeit.timeit("x = (1, 2, 3, 4, 5)", number=1000000)

print(f"리스트 생성 시간: {list_time}초")
print(f"튜플 생성 시간: {tuple_time}초")

정리

리스트와 튜플은 각각의 강점이 있는 자료구조입니다. 리스트는 유연성과 데이터 조작이 강점이고, 튜플은 불변성과 성능 효율성이 강점입니다. 프로젝트의 요구사항에 따라 적절히 선택하는 것이 중요합니다.

 

다른 글

 

Python 딕셔너리(Dictionary)와 집합(Set)

Python에는 데이터를 관리하고 처리하기 위한 다양한 내장 자료구조가 존재합니다. 그중에서 딕셔너리(Dictionary)와 집합(Set)은 각각 키-값 형태의 매핑 구조와 중복 없는 데이터 집합을 표현하기에

gallery-a.tistory.com

 

 

'Language > Python' 카테고리의 다른 글

Python의 리스트 컴프리헨션(List Comprehension)  (0) 2023.10.23
Python 딕셔너리(Dictionary)와 집합(Set)  (0) 2023.10.22
Python 조건문과 반복문  (0) 2023.10.21
Python 기본 문법 (데이터 타입, 연산자, 입력과 출력, 주석)  (1) 2023.10.21
Python 설치하기 (Window, macOS, Linux)  (0) 2023.10.20
Language/Python 추천 글
more
  • Python의 리스트 컴프리헨션(List Comprehension)
    Python의 리스트 컴프리헨션(List Comprehension)2023.10.23
  • Python 딕셔너리(Dictionary)와 집합(Set)
    Python 딕셔너리(Dictionary)와 집합(Set)2023.10.22
  • Python 조건문과 반복문
    Python 조건문과 반복문2023.10.21
  • Python 기본 문법 (데이터 타입, 연산자, 입력과 출력, 주석)
    Python 기본 문법 (데이터 타입, 연산자, 입력과 출력, 주석)2023.10.21
FRONTMAN

검색

250x250

방문자 수

Total
Today
Yesterday

카테고리

  • 분류 전체보기 (54)
    • Language (48)
      • JavaScript (15)
      • TypeScript (14)
      • Python (14)
      • Dart (5)
      • Java (0)
    • FE (6)
      • WEB (4)
      • React (0)
      • Flutter (1)
    • CS (0)
      • Algorithm (0)
      • Network (0)
    • DevOps (0)

공지사항

  • 전체보기

최근 글

인기 글

태그

  • 자바스크립트
  • typeScript
  • export
  • 타입
  • 파이썬
  • OOP
  • nodejs
  • npm
  • await
  • Modules
  • 웹
  • Import
  • CLASS
  • 타입스크립트
  • DART
  • inline frame
  • Flutter
  • Interface
  • js
  • Python
  • function
  • async
  • Object
  • JavaScript
  • web
  • Type
  • list
  • frontend
  • 리스트
  • tuple

최근 댓글

FRONTMAN :: hahekaku
CopyrightBluemivDesigned byBluemiv

티스토리툴바