Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 리스트(List)와 튜플(Tuple)의 차이점 완벽 정리

이 글에서는 파이썬에서 리스트(List)튜플(Tuple)의 차이점을 자세히 알아보겠습니다.

리스트와 튜플은 파이썬에서 가장 많이 사용되는 두 가지 대표적인 데이터 구조입니다. 둘 다 여러 개의 데이터를 하나의 변수에 저장할 수 있다는 공통점이 있지만, 몇 가지 중요한 차이점이 있습니다.

리스트(List)란?

리스트는 '시퀀스(sequence)'라고도 불리며, 파이썬에서 가장 자주 사용되는 데이터 타입 중 하나입니다. 다양한 용도로 활용할 수 있는 유연성이 큰 장점입니다.

리스트는 모든 요소를 대괄호 [ ] 안에 넣고, 각 요소를 쉼표(,)로 구분하여 생성합니다. 리스트에는 원하는 만큼의 요소를 담을 수 있으며, 정수(int), 실수(float), 문자열(string) 등 서로 다른 자료형을 함께 저장할 수도 있습니다.

리스트의 가장 중요한 특징은 변경 가능(mutable)하다는 점입니다. 즉, 한 번 생성된 이후에도 요소를 추가, 수정, 삭제할 수 있습니다.

리스트 생성 예제

서로 다른 자료형을 포함하는 리스트는 다음과 같이 생성할 수 있습니다.

my_list = [1.8, 'string', 34, 'a']
print(my_list)

출력 결과

[1.8, 'string', 34, 'a']

리스트 요소에 접근하기

리스트 내부의 데이터에 접근하는 방법은 여러 가지가 있습니다.

인덱싱(Indexing)

인덱스를 사용하면 특정 위치의 요소에 접근할 수 있습니다. 인덱스는 0부터 시작한다는 점에 유의하세요.

my_list = [1.8, 'string', 34, 'a']
print("두 번째 요소는")
print(my_list[1])

출력 결과

두 번째 요소는
string

슬라이싱(Slicing)

특정 범위의 요소들을 한 번에 가져오는 것을 슬라이싱이라고 합니다.

my_list = [1.8, 'string', 34, 'a']
print("특정 범위의 요소들")
print(my_list[1:4])

출력 결과

특정 범위의 요소들
['string', 34, 'a']

리스트 값 변경하기

리스트는 변경 가능하기 때문에, 인덱싱으로 특정 위치에 접근한 후 새로운 값을 할당하면 해당 요소를 수정할 수 있습니다.

my_list = [1.8, 'string', 34, 'a']
print("변경 전 리스트")
print(my_list)
my_list[1] = 'my_string'
print("변경 후 리스트")
print(my_list)

출력 결과

변경 전 리스트
[1.8, 'string', 34, 'a']
변경 후 리스트
[1.8, 'my_string', 34, 'a']

튜플(Tuple)이란?

튜플은 소괄호 ( )를 사용하여 생성합니다. 튜플의 핵심 특징은 불변(immutable)하다는 것입니다. 즉, 한 번 할당된 요소는 나중에 수정하거나 삭제할 수 없습니다.

리스트와 마찬가지로 튜플에도 원하는 만큼의 요소를 담을 수 있으며, 정수, 실수, 문자열 등 다양한 자료형을 혼합하여 저장할 수 있습니다.

참고: 소괄호 없이도 튜플을 생성할 수 있지만, 코드의 가독성을 위해 소괄호를 사용하는 것이 좋은 습관입니다.

요소가 하나인 튜플 생성 예제

요소가 하나뿐인 튜플을 만들 때는 반드시 요소 뒤에 쉼표(,)를 붙여야 합니다. 쉼표가 없으면 일반 문자열로 인식됩니다.

my_tuple = ("hey",)
print("요소가 하나인 튜플 생성")
print(my_tuple)

출력 결과

('hey',)

리스트와 튜플의 주요 차이점 요약

  • 문법: 리스트는 대괄호 [ ], 튜플은 소괄호 ( )를 사용합니다.
  • 변경 가능 여부: 리스트는 mutable(변경 가능), 튜플은 immutable(변경 불가)입니다.
  • 성능: 튜플은 리스트보다 약간 더 빠르고 메모리를 적게 사용합니다.
  • 용도: 값이 변하지 않아야 하는 데이터(예: 좌표, 설정값)는 튜플로, 데이터를 계속 수정해야 한다면 리스트로 저장하는 것이 좋습니다.

참고: 튜플의 요소 접근 방법, 음수 인덱싱(negative indexing), 슬라이싱은 리스트와 동일하게 작동합니다.

한 가지 흥미로운 점은, 튜플 안에 리스트가 포함되어 있다면 그 리스트 자체는 변경할 수 있다는 것입니다. 다만 튜플에 직접 저장된 요소들은 변경할 수 없습니다.