파이썬 기초

파이썬 기초 리스트와 튜플 차이점에 대해서

코니코니 2022. 9. 30. 15:00
반응형

파이썬 기초 리스트와 튜플 차이점에 대해서


파이썬에서 사용되는 자료형 중에서 리스트와 튜플은 매우 비슷합니다. 단지 리스트와 튜플의 차이점이라고 한다면 리스트는 항목들을 수정할 수 있고 튜플은 처음에 주어진 항목들에 대해서 수정을 할 수 없다는 점에서 차이가 있다고 볼 수 있겠네요.

이러한 리스트와 튜플이 어떤 식으로 사용이 되는지에 대해서 알아보도록 하겠습니다.

iam_list = [1, 2, 3, 'a', 'b', 'c']
iam_tuple = (1, 2, 3, 'a', 'b', 'c')

리스트와 튜플의 또다른 차이점은 괄호의 모양입니다. 리스트는 딱딱한 모양의 대괄호, 튜플은 동글동글한 소괄호를 씁니다. 그러나 항목을 넣는 방식은 괄호 모양을 제외하고는 동일합니다. 그러나 위에서 말을 했던 것처럼 튜플은 리스트와 다르게 수정이 불가합니다. 아래 예시를 볼까요?

iam_list = [1, 2, 3, 'a', 'b', 'c']
iam_list.append('추가할거!')
iam_list.remove(1)  # 1을 제거함!

iam_tuple = (1, 2, 3, 'a', 'b', 'c')
iam_tuple.count(1)  # 튜플 안에 1이 몇개인지 찾기!
iam_tuple.index(3)  # 튜플 안에 3이 몇번째에 있는지 인덱스!

iam_list 리스트의 경우에는 append와 remove 등과 같이 내부 항목을 추가하거나 제거할 수 있는 반면, iam_tuple 튜플 같은 경우에는 내부 수정을 하는 기능이 아닌 count나 index와 같은 내부적으로 조사를 하는 함수만 사용이 가능합니다.

iam_tuple = (1, 2, 3, 'a', 'b', 'c')
iam_tuple.append('추가할거!')

==결과==
AttributeError: 'tuple' object has no attribute 'append'

위처럼 튜플에 내용을 추가하거나 제거하는 등 리스트에 있는 기능을 넣으려고 해도 사용이 불가하다는 것인데 만약 튜플에 있는 항목들을 수정해야만 한다면 동일한 항목을 그대로 가져와 새로운 리스트에 대입을 한다거나 아예 튜플을 리스트화 시키는 방법 밖에는 없습니다.

iam_tuple = (1, 2, 3, 'a', 'b', 'c')
iam_list = list(iam_tuple)

print(iam_list)

==결과==
[1, 2, 3, 'a', 'b', 'c']

이런 방식으로 기존에 만들어진 튜플을 리스트로 변환을 시켜서 새로운 메모리에 할당을 하여 사용하는 것으로 튜플의 항목들을 수정할 수 있습니다.

iam_list = [1, 2, 3, 'a', 'b', 'c']
for z in iam_list:
    print(z)
    
iam_tuple = (1, 2, 3, 'a', 'b', 'c')
for z in iam_tuple:
    print(z)
    
==결과 동일함==
1
2
3
a
b
c

수정을 할 수 없는 것을 제외하고는 항목들을 사용하는 방법은 동일하기 때문에 적절히 리스트와 튜플을 필요한 상황에 맞춰서 써주면 되겠죠?

리스트와 튜플의 다양한 기능 및 사용 방법에 대해서는 아래 링크에서 자세하게 확인할 수 있습니다.

반응형