Hello Computer Vision

[python] 튜플을 사용하는 이유 본문

딥러닝/파이썬

[python] 튜플을 사용하는 이유

지웅쓰 2023. 12. 18. 11:54

이번에 교양으로 python 과목을 들었는데, 기초적인 자료구조에 대한 설명을 보았다.

물론 그 중에서도 잘 사용하지 않는 Dict, 튜플, set 등이 있었다.

 

그러다 갑자기쓰임새가 비슷할 거 같은 튜플과 리스트 중에 리스트가 더 편한데 왜 튜플을 사용하는지 궁금했다. 튜플의 가장 큰 불편한 점이라고 하면 리스트처럼 데이터를 추가할 수도, 변경할 수도 없다.

 

첫번째. 동적 배열

당연하지만 메모리 측면에서 튜플이 훨씬 유리하다고  한다. 그 중 리스트는  동적으로 크기를 늘릴 수 있는데 이러한 과정에서 메모리 크기는 더블링 된다. 따라서 배열에 추가로 데이터를 추가하는 동적 배열을 하게 될 경우 더 많은 메모리를 사용하게 된다.

 

두번째. 불변객체

튜플은 데이터를 변경할 수 없는 불변개체이며 리스트는 안의 데이터를 변경하더라도 주소값이 같은 가변객체이다. 근데 당연히 불변객체가 메모리 효율이 좋을줄 알았는데 그 반대이다. 왜냐하면 불변개체는 새로운 object를 생성하면 주소가 변경되기 때문에 메모리 누수 가능성이 있다고 한다. 물론 장점도 있겠지만 불변개체라서 메모리 효율은 좋지 않다.

 

++2024.1.27 추가

튜플 값에 1개만 넣을 때는 ({원소}, ) 이렇게 콤마를 찍어줘야한다.

 

참고

https://fierycoding.tistory.com/43