python - tuple : 데이터 취업 스쿨 스터디 노트 11/15

slocat·2023년 11월 15일
0

start-data

목록 보기
13/75

튜플

튜플은 리스트와 유사하나,
아이템을 추가, 변경, 삭제할 수 없다.

numbers = (10, 20, 30, 40, 50)	# 선언 시 괄호 생략 가능

print(numbers)          # (10, 20, 30, 40, 50)
print(type(numbers))    # <class 'tuple'>

print(numbers[0])       # 10
print(numbers[3])       # 40

튜플의 길이 : len(tuple)

# 반복문, len()을 이용하여 튜플의 아이템 조회
numbers = (10, 20, 30)

for i in range(len(numbers)):
  print(f'{i}: {numbers[i]}')

>>> 
0: 10
1: 20
2: 30
# 간단하게
for number in numbers:
  print(number)
  
>>>
10
20
30

튜플 슬라이싱

튜플은 슬라이싱을 이용해서 아이템을 변경할 수 없다.(리스트는 가능)

numbers = (10, 20, 30, 40, 50)

print(numbers[1:3])     # (20, 30)
print(numbers[:3])      # (10, 20, 30)
print(numbers[1:])      # (20, 30, 40, 50)
print(numbers[2:-2])    # (30,)
print(numbers[-4:-2])   # (20, 30)

print(numbers[::2])     # (10, 30, 50)
print(numbers[0:3:2])   # (10, 30)

# slice()
print(numbers[slice(1, 3)])    # (20, 30)

리스트에 튜플로 아이템을 변경하는 건 가능하다.

tuple1 = (777, 777)
list1 = [10, 20, 30, 40, 50]

list1[2:4] = tuple1
print(list1)

>>>
[10, 20, 777, 777, 50]

반복문을 이용한 튜플 조회

for문

numbers = 10, 20, 30

for num in numbers:
  print(num)
  
>>>
10
20
30

내부 튜플 조회

studentCnts = ((1, 19), (2, 20), (3, 33), (4, 18), (5, 21))

for classNo, cnt in studentCnts:
  print(f'{classNo}반 학생 수: {cnt}명')

>>>
1반 학생 수: 19명
2반 학생 수: 20명
3반 학생 수: 33명
4반 학생 수: 18명
5반 학생 수: 21명

튜플 결합 : + 연산자(extend() 불가)

numbers1 = (10, 20, 30)
numbers2 = (40, 50, 60)

numbers1 += numbers2
print(numbers1)

>>>
(10, 20, 30, 40, 50, 60)
myNum = (1, 3, 5, 6, 7)
friendNum = (2, 3, 5, 8, 10)
ourNum = myNum

for num in friendNum:
  if num not in ourNum:
    ourNum += (num, ) # 튜플 + 튜플만 가능

print(ourNum)

>>>
(1, 3, 5, 6, 7, 2, 8, 10)

튜플 아이템 정렬

리스트로 변환 후 정렬하기

# sort()
numbers = (20, 40, 30, 10, 50)

numbers = list(numbers)
numbers.sort()
numbers = tuple(numbers)

print(numbers, type(numbers))

>>>
(10, 20, 30, 40, 50) <class 'tuple'>

sorted(tuple)

원본은 그대로 유지되며, 리스트 자료형을 반환한다.

numbers = (20, 40, 30, 10, 50)

numbersCopy = sorted(numbers)
print(numbers, type(numbers))
print(numbersCopy, type(numbersCopy))

>>>
(20, 40, 30, 10, 50) <class 'tuple'>
[10, 20, 30, 40, 50] <class 'list'>

아이템 존재 유무 확인 : in, not in

numbers = (10, 20, 30, 40, 50)

num = 60
if num in numbers:
  print(f'{num}: numbers에 있습니다.')
else:
  print(f'{num}: numbers에 없습니다.')
  
>>>
60: numbers에 없습니다.

문자열에도 사용 가능하다.

text = '안녕하세요. 반갑습니다. Hello. 2023년'

print('안녕' in text)
print('hello' in text)
print('2023' in text)
print('.' in text)
print(' ' in text)

>>>
True
False
True
True
True

🚗 오늘은 튜플에 대해 배웠다.
리스트와 어떤 차이가 있는지 잘 알아둬야겠다.
금요일에 팀 회의가 있을 예정이라 데이터 엔지니어, 데이터 분석가, 데이터 사이언티스트의 차이점에 대해서도 공부할 생각이다.

🚕 내일은 3번째 자료구조 딕셔너리에 대해 학습하고, 연습 문제를 풀어볼 것이다. 벌써 목요일이라니... 데이터 스쿨 과정에 참여하니 시간이 더 빠르게 간다.

0개의 댓글