쭉쭉 복습 기록하여 밀어보기로 했다.
6. tuple
tuple (튜플)
시퀀스 타입, 순서가 존재하는 여러 데이터의 모음
불변 (immutable) 자료형
순서가 있기에 인덱스가 존재하고, 동일한 값을 여러개 가질 수 있지만. 만들면 요소를 수정, 삭제할 수 없다.
생성 방식은 소괄호 () 와 쉼표, 구분이 있는데 명확성을 위해 ()로 튜플을 생성한다.
my_tuple = (1,2,3,4)
print(my_tuple) #(1,2,3,4)로 나옴
print(type(my_tuple)) #<class 'tuple'>
my_tuple2 = 5,6,7,8
print(my_tuple2)
단일 요소의 튜플 만들 때 쉼표를 무조건 넣어줘야 인지된다.
single_el_tuple = (100,) < , 인식
my_tuple2 = tuple()
print(my_tuple2)
my_tuple2 =tuple('coodingon')
print(my_tuple2) #단어 한 글자를 쪼개서 요소로 만들어진 게 나옴

언패킹 (Unpacking)
시퀸스의 저장된 여러 값을 여러 변수에 나눠서 저장한 것
왼쪽에 변수 나열, 오른쪽에 시퀀스 자료형
개수 일치 하면 각각 대응되는 값이 할당되고 맞지 않으면 Error 발생한다.
튜플, 리스트, 문자열... 가능하다.
apple, bananan, kiwi = ("apple", "banana", "kiwi")
print(apple, bananan, kiwi)
=> apple banana kiwi 로 나온단 뜻.


순서가 있는 시퀀스 자료형이기 때문에 인덱싱 지정해 출력 가능하다.
그렇기에 튜플 수정 하는 법: 그냥 새로 만들어서 슬라이싱해 연산하여 만든다.
my_tuple = (10,20,30)
print("원래 튜플" , my_tuple)
#원래 튜플 (10, 20, 30)
my_tuple2 = (100,) + my_tuple[1:]
print("새로운 튜플", my_tuple2)
#새로운 튜플 (100, 20, 30)
튜플도 연산이 있는데 주로 연결(+) 반복(*) 으로 리스트때 쓴 연산과 유사하다.
메서드에 관해...
튜플은 불변 시퀀스 자료형이라서 리스트와 다르게 쓸 수 있는 게 적다.
튜플을 변경시키지 않는 파이썬 내장 함수만 사용 가능.


그럼 튜블의 불변성은 어디에 유용한가.

튜플은 위에도 요소를 추가, 수정 , 삭제가 안된다고 했는데. 대략 써본다면.
my_tuple[0] = 100
#'tuple' object does not support item assignment. 튜플은 지원하지 않는다 뜻
del my_tuple[1]
#'tuple' object doesn't support item deletion 타입 에러 나온다.
#튜플 자체는 삭제가 가능하다. but 원소 삭제는 불가함.
del my_tuple
print(my_tuple)
#name 'my_tuple' is not defined = 찾을 수 없다 = 삭제 됨
이하 실습 내용들.
#실습+설명
손상된 정보 복원이란 형태로 한 문제였다.
바뀐 정보를 주고 해당 요소를 바꾸라는데, 처음에 이해 못하다 나중에 풀어보니
해당 정보를 가지고 새로운 튜플로 만들라는 뜻이었다.
01 user = ("minji", 25, "Seoul")을 ‘eunji’로 수정한 결과를 restored_user에 저장하고 출력
user = ("minji", 25, "Seoul")
restored_use = ("eunji",)+ user[1:]
print("수정된 정보", restored_use)
새로운 튜플로 해당 정보를 각각 처리하도록 변수 처리라고 하는데 언패킹하단 뜻이다.
02 튜플 restored_user를 언패킹하여 name, age, city 변수에 저장
name, age, city = restored_use
print(name, age, city)
여기서 3번은 생략되었다. (단계를 넘기자고...)
04 현재 DB보고 "minji" 라는 이름이 몇번 등장하는지 출력
"soojin"이 처음 등장하는 위치(인덱스)를 출력
users = ("minji", "eunji", "soojin", "minji", "minji")
print(users.count("minji"))
print(users.index("soojin"))
05 보고서 출력용으로 고객이름을 가나다순으로 정렬
튜플은 변경불가 이므로 원본은 유지되어야 하며, 정렬 결과는 리스트 형태로 출력
users 튜플을 정렬한 결과를 sorted_users에 저장하고 출력
sorted_users = list(users)
sorted_users.sort()
print(sorted_users)
print("복원 된 고객 정보:",)
이런 식으로 튜플 챕터를 백업 했다. 다시 읽고 문제를 읽어보니 이해가 가면서도 왜 직접 쓰면 안 써지는 지 모르겠다.
배포한 강의 자료도 같이 보면서 쓰고 있는데 낯선 단어가 나오면 이게 뭘까?하고 생각이 길어지니 놓치기도 하고
무작정 받아적고 써먹는다 해도 기억에 안 남으니 나 스스로가 아쉬운 거 같다. 일단 여기까지!
'IT' 카테고리의 다른 글
| [코딩온] 신재생에너지 IoT 개발자 입문_ 파이썬8 (0) | 2025.12.05 |
|---|---|
| [코딩온] 신재생에너지 IoT 개발자 입문_ 파이썬6 (0) | 2025.12.01 |
| [코딩온] 신재생에너지 IoT 개발자 입문_ 파이썬 2 (0) | 2025.11.24 |
| [코딩온] 신재생에너지 IoT 개발자 입문 251110 회고 (0) | 2025.11.18 |
| [코딩온] 신재생에너지 IoT 개발자 입문 251107 회고 (0) | 2025.11.11 |