수업(국비지원)/Python

[Python] 컬렉션 - tuple

byeolsub 2023. 4. 24. 20:26

📌

##### 튜플 : 상수화 된 리스트(상당히 안정적이다.). ()로 표시함.
#        변경 할 수 없다.
tp1 = (10,20,30)
print(tp1)

# 리스트기 때문에 반복문에서도 사용 가능.
for t in tp1 :  
   print(t)        

# 인덱스 사용가능   
print(tp1[0],tp1[1],tp1[2])   

tp1.append(40) # 오류. AttributeError: 'tuple' object has no attribute 'append'
tp1[0] = 100 #오류. 튜플은 변경 안됨.

## 튜플객체를 변경하기 위해서는 리스트로 변경을 해야한다.
list1 = list(tp1)
list1.append(40)
list1[0] = 100
list1  # 결과 -> [100, 20, 30, 40]

# tuple() : 튜플객체로 변경
tp1 = tuple(list1)
tp1  # 결과 -> (100, 20, 30, 40)

#### 튜플객체의 특징 ####
# tp1의 요소의 갯수와 변수의 갯수가 동일하면 사용 가능.
a,b,c,d = tp1
print(a,b,c,d) # 결과 -> 100 20 30 40

# tp1의 요소의 갯수 구하기
print(len(tp1))

# list1의 요소의 갯수 구하기
print(len(list1))

# tp1의 요소의 합 구하기
print(sum(tp1))
sum(tp1) # 결과 -> 190

# list1의 요소으 ㅣ합 구하기
print(sum(list1))

# 인덱스 사용시 범위 인덱스 사용 할 수 있음.
# 2,3 번째 요소만 출력하기
print(tp1[1],tp1[2])  # 결과 -> 20 30
print(tp1[1:3]) # 결과 -> (20, 30)
print(tp1[:3])  # 결과 -> (100, 20, 30)
print(tp1[::2])  # 결과 -> (100, 30)

tp1 # 결과 -> (100,20,30,40)
# tp1의 요소를 역순으로 출력하기
tp1.reverse() # 역순으로 객체를 수정. 튜플에서는 불가
list1.reverse() # 역순으로 객체를 수정
list1 # 결과 -> [40, 30, 20, 100]

##1 tp1 요소를 역순으로 출력
for i in range(len(tp1)-1,-1,-1) :
    print(tp1[i],end=",")  # 결과 -> 40,30,20,100,
    
##2
print(tp1[::-1])
tp1  # 결과 -> (100, 20, 30, 40)  역순으로 출력
 
print(list1[::-1])
list1  # 결과 -> [40, 30, 20, 100]  역순으로 출력