인터넷과 컴퓨터

파이썬 기초개념 정리 : 튜플tuple

동사힐 2023. 4. 18.

오늘은 파이썬에서 매우 중요한 기초개념인 튜플tuple에 대해서 정리하도록 하겠습니다.


파이썬에서 튜플(Tuple)은 변경 불가능한(Immutable) 시퀀스 자료형입니다. 리스트(List)와 유사하지만, 한 번 생성되면 값을 추가, 수정, 삭제할 수 없습니다.

표현식으로는 원소들을 괄호로 감싸고, 각 원소들은 쉼표로 구분합니다. 예를 들어, (1, 2, 3)과 같이 표현할 수 있습니다.


나도하는파이썬데이터분석 튜플


튜플은 리스트와 달리 변경이 불가능하기 때문에, 항목이 추가되거나 삭제되는 등의 연산이 불가능합니다. 그러나 인덱스(Index)를 사용하여 튜플 내의 항목에 접근하거나, 여러 개의 변수에 값을 대입하는 등의 작업을 수행할 수 있습니다. 

my_tuple = (1, 2, 3)
print(my_tuple[0])  # 1
print(my_tuple[1:]) # (2, 3)

x, y, z = my_tuple
print(x, y, z)      # 1 2 3

튜플은 데이터의 변경이 필요 없는 경우에 유용하게 사용될 수 있습니다. 함수가 여러 개의 값을 반환할 때, 튜플을 이용하여 여러 값을 함께 반환할 수 있습니다.
 

파이썬의 튜플에 대입된 값의 자료형이 일치하지 않아도 되는 이유는 다음과 같습니다.


파이썬에서 튜플은 여러 가지 자료형을 함께 담을 수 있습니다. 이는 튜플이 원소들을 쉼표로 구분하는 형태를 갖고 있기 때문입니다. 예를 들어, (1, "hello", [1, 2, 3])와 같은 튜플은 정수, 문자열, 리스트라는 서로 다른 자료형을 함께 담고 있습니다.

튜플에 대입된 값의 자료형이 일치하지 않아도 되는 이유는 이러한 유연성 때문입니다. 파이썬에서는 변수에 값을 대입할 때, 변수의 자료형과 대입되는 값의 자료형이 일치해야 하는 경우가 많습니다. 그러나 튜플은 여러 가지 자료형을 함께 담을 수 있기 때문에, 대입되는 값의 자료형이 튜플 내의 각 원소의 자료형과 일치하지 않아도 됩니다.

대입 시에는 튜플 내의 원소 개수와 대입되는 변수의 개수가 일치해야 하며, 각 변수는 대응하는 원소의 값으로 초기화됩니다. 이 때, 각 변수의 자료형은 대응하는 원소의 자료형과 일치하지 않아도 되는 것이지, 변수 간의 자료형 일치는 여전히 유지됩니다. 예를 들어, 다음과 같은 코드는 문제 없이 실행됩니다.

a, b, c = (1, "hello", [1, 2, 3])
print(a, b, c)  # 1 hello [1, 2, 3]

하지만, 대입 시에 튜플 내의 원소 개수와 대입되는 변수의 개수가 일치하지 않거나, 대응하는 변수의 개수보다 원소의 개수가 더 많은 경우 등에는 ValueError가 발생합니다.
 

인덱스를 사용하여 튜플 내 원소에 접근할때는 다음과 같습니다.


파이썬에서 튜플은 시퀀스 자료형 중 하나이며, 0부터 시작하는 인덱스(index)를 사용하여 각 원소에 접근할 수 있습니다. 즉, 첫번째 원소의 인덱스는 0이며, 이후의 원소들은 0부터 1씩 증가하는 인덱스를 갖게 됩니다.

따라서, 튜플의 마지막 원소의 위치는 전체 원소의 개수 N에서 1을 뺀 값(N-1)이 됩니다. 이는 0부터 시작하는 인덱스 체계에서 마지막 인덱스를 나타내기 위한 관례적인 표현 방법입니다. 예를 들어, 길이가 3인 튜플 (1, 2, 3)에서 마지막 원소의 위치는 2가 됩니다.

따라서, 인덱스를 사용하여 튜플 내의 원소에 접근할 때는 첫번째 원소는 my_tuple[0]과 같이 0번 인덱스를 사용하고, 마지막 원소는 my_tuple[N-1]과 같이 전체 원소의 개수에서 1을 뺀 값을 인덱스로 사용합니다.
 

2차원 튜플과 3차원 튜플에 대한 간략한 설명은 다음과 같습니다.


2차원 튜플과 3차원 튜플은 각각 2차원과 3차원 공간에서 데이터를 저장하고 관리하기 위한 방법 중 하나입니다.

2차원 튜플은 일반적으로 행렬(matrix)이나 2차원 배열(array)과 유사한 구조를 갖습니다. 즉, 각 원소는 두 개의 인덱스(index)를 사용하여 접근할 수 있습니다. 예를 들어, 다음과 같은 2차원 튜플은 2행 3열의 행렬을 나타냅니다.

matrix = ((1, 2, 3), (4, 5, 6))

이 경우, matrix[0][0]은 1, matrix[1][2]는 6과 같이 각각 첫번째 인덱스가 행(row)을, 두번째 인덱스가 열(column)을 나타냅니다.

3차원 튜플은 3차원 공간에서 데이터를 저장하고 관리하기 위한 방법입니다. 각 원소는 세 개의 인덱스를 사용하여 접근할 수 있습니다. 예를 들어, 다음과 같은 3차원 튜플은 2개의 평면(plane)으로 이루어진 3차원 공간에서 데이터를 나타냅니다.

cube = (((1, 2), (3, 4)), ((5, 6), (7, 8)))

이 경우, cube[0][0][0]은 1, cube[1][1][0]은 7과 같이 각각 첫번째 인덱스가 평면(plane), 두번째 인덱스가 행(row), 세번째 인덱스가 열(column)을 나타냅니다.

2차원 튜플과 3차원 튜플은 각각 행렬과 큐브 등의 다양한 데이터 구조를 나타내는 데 사용될 수 있습니다. 이러한 튜플을 이용하여 복잡한 데이터를 관리하고 처리하는 것이 가능합니다.
 

튜플을 파악하는 주요 함수는 다음과 같습니다.


튜플에 속한 원소 개수를 확인하는 함수는 len() 함수를 사용합니다. len() 함수는 파이썬 내장 함수로, 인자로 전달된 시퀀스 자료형의 길이를 반환합니다.


나도하는파이썬데이터분석 튜플 활용


예를 들어, 다음과 같은 튜플 my_tuple의 길이를 확인하는 코드는 아래와 같습니다.

my_tuple = (1, 2, 3, 4, 5)
print(len(my_tuple))  # 출력: 5

해당 튜플의 길이가 5이므로, 위 코드는 5를 출력합니다.

튜플에서 해당 원소의 첫번째 인덱스를 파악하는 함수는 index() 메서드를 사용합니다. index() 메서드는 튜플에서 해당 원소가 처음으로 등장하는 인덱스를 반환합니다.

예를 들어, 다음과 같은 튜플 my_tuple에서 원소 3의 첫번째 인덱스를 확인하는 코드는 아래와 같습니다.

my_tuple = (1, 2, 3, 4, 5, 3)
print(my_tuple.index(3))  # 출력: 2

해당 튜플에서 원소 3은 첫번째 인덱스와 다섯번째 인덱스에 각각 등장하지만, index() 메서드는 해당 원소가 처음으로 등장하는 인덱스인 2를 반환합니다.
 

오늘은 파이썬에서 매우 중요한 기초개념인 튜플tuple에 대해서 살펴보았습니다.


튜플(tuple)은 변경 불가능한(immutable) 시퀀스 자료형으로, 리스트와 유사한 형태를 가지고 있습니다. 튜플은 괄호 ()를 사용하여 생성하며, 각 원소는 콤마 ,로 구분합니다. 리스트와 마찬가지로 다양한 자료형을 원소로 가질 수 있습니다.

튜플은 변경 불가능하기 때문에 한 번 생성된 후에는 추가, 삭제, 수정이 불가능합니다. 하지만, 인덱싱과 슬라이싱을 비롯한 다양한 연산을 지원합니다. 또한, 여러 값을 동시에 반환하거나 전달해야 하는 경우에 자주 사용됩니다.

튜플은 2차원 튜플과 3차원 튜플 등 다차원 배열을 구현하는 데에도 활용됩니다. 2차원 튜플은 행렬(matrix)과 유사한 구조를 가지며, 각 행마다 원소들을 가집니다. 3차원 튜플은 2차원 튜플들이 모여 구성된 형태입니다.

튜플에서는 len() 함수를 사용하여 원소의 개수를 확인할 수 있으며, index() 메서드를 사용하여 해당 원소의 첫번째 인덱스를 파악할 수 있습니다.

더 자세하게 살펴보시려면 나도하는파이썬데이터분석 튜플 부분을 참고바랍니다.
 
이상으로 파이썬 기초개념 정리 : 튜플tuple 포스팅을 마칩니다. 감사합니다.

반응형

댓글

💲 추천 글