I. Introduction
튜플은 변경될 수 없다. 그 구성 원소에 대해서. 순서도 바꿀 수 없다. 반면, 리스트는 그렇지 않다.
튜플Tuple은 List처럼 생겼지만 보통의 평범한 괄호를 사용한다. 괄호Parentheses, 이렇게 생긴, ( ).
#문자열 튜플
myTuple1 = ( "오징어", "꼴뚜기", "문어" )
# 숫자형 튜플
myTuple2 = ( 1, 3, 5, 7, 9 )
# 괄호는 생략 가능.
myTuple3 = "월", "화", "수", "목", "금", "토", "일"
# 텅 빈 튜플 생성 1
emptyTuple1 = ()
# 텅 빈 튜플 생성 2
emptyTuple2 = tuple()
# 쉼표, 콤마Comma를 추가하면 튜플이 됨.
variableA = 6, 25
# 원소가 하나인 튜플, 주의! 쉼표 추가!
intVariableB = 999
tupleVariableC = 999,
# 튜플은 수정되지 않는다.
print(myTuple1[2]) # "문어"
myTuple1[2] = "명태" # Error!
# 튜플의 정렬
myTuple4 = ( 1, 9, 5, 2, 8, 6 )
myList! = sorted(myTuple4)
# sorted()는 튜플을 받고 리스트를 반환한다.
# 튜플은 직접 정렬되지 않는다.
# 리스트로 값들을 넘기고 그 리스트에서 정렬한다.
# 튜플 요소들의 갯수 알아내기
>>> myTuple5 = (1, 2, 3, "OK!")
>>> len(myTuple5)
4
>>>
# 튜플의 첫 요소 출력하기
>>> print(myTuple5[0])
1
>>>
# 튜플의 마지막 요소 출력하기
>>> print(myTuple5[len(myTuple5)-1])
OK!
>>>
# 문자열을 실제로 문자열 내용 그 자체만 아무런 표지나 장식 없이 그대로 출력한다. print() 함수 효과라고 할 수 있다. 아래와 비교, 대조해 보라.
>>> myTuple5[len(myTuple5)-1]
'OK!'
>>>
# 여기서는 문자열이라는 것을 나타내는 작은 따옴표 '토큰'이 포함되어 있다.
# 튜플의 크기 알아내기
Python에서는 C/C++처럼 sizeof() 같은 내장 함수가 없고, size()라는 함수도 기본적으로 제공되지 않는다. 어떤 객체의 '크기'라는 말은 두 가지로 해석될 수 있다.
1) 객체의 메모리 사용량 크기
2) 객체의 구성 요소의 갯수(길이) ( 보통의 경우에, 이것을 의미함.)
순서대로 살펴보면:
# 객체가 차지하는 메모리 크기 확인법
sys.getsizeof(obj) : 객체가 차지하는 메모리 크기를 바이트 단위로 반환한다.
import sys
a = 10
print(sys.getsizeof(a)) # 정수형 변수 a가 메모리 상에서 차지하는 크기
b = [ 1, 2, 3 ]
print(sys.setsizeof(b) # 리스크 객체 b가 메모리 상에서 차지하는 크기
# 주의 사항 :: Python에서, 리스트나 딕셔너리 같은 컨테이너의 경우, 컨테이너 자체의 크기만 반환하고 내부 요소들의 크기는 포함하지 않습니다. 전체 메모리 사용량을 알고 싶다면 재귀적으로 요소들의 크기를 합산해야 합니다. 추가 계산이 필요한 부분입니다.
# 객체의 구성 요소의 갯수(길이) ( 보통의 경우에, 이것을 의미함.)
len(obj) --> 리스트, 튜플, 문자열, 딕셔너리 등 구성 요소의 갯수를 반환합니다.
# 문자열의 길이 출력 : 5
>>> s = "Hello"
>>> print(len(s))
5
>>>
# 리스트 길이 : 4
>>> arr = [ 1, 2, 3, 4 ]
>>> print(len(arr))
4
>>>
# 비교 언어적 특성
1) C언어의 경우 :
sizeof 연산자 사용. 컴파일 시점에 타입이나 변수의 크기를 바이트 단위로 반환.
2) C언어 예제 1 : int형의 크기
int a = 10;
printf("%zu\n", sizeof(a)); // int 변수의 크기
printf("%zu\n", sizeof(int)); // int 타입의 크기. int 자료형 자체의 크기. C언어 규약을 말함.
3) C언어 예제 2 : 배열의 길이 - 배열 전체 크기를 요소 하나의 크기로 나누어 계산
int arr[5];
printf("%zu\n", sizeof(arr) / sizeof(arr[0])); // 배열 길이 : 5
.
.
.tbc.
'Programming > Python' 카테고리의 다른 글
| Python 3D - Panda3D SDK(v1.10.15) 설치 및 테스트 (0) | 2025.12.20 |
|---|---|
| SR 만들기 - 002 (0) | 2025.11.15 |
| Python Intro. - 001 (0) | 2025.11.02 |
| Hex File Viewer 연습 - 001 (0) | 2025.10.28 |
| 신생 언어 Mojo 소개 - 001 (0) | 2025.10.06 |