리스트와 비슷하지만 아이템 변경(수정,삭제) 불가능
()를 이용해서 선언하고 데이터 구분은','를 사용
숫자,문자(열),논리형 등 모든 기본 데이터를 같이 저장 가능
students = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
numbers = (10, 20, 30, 40, 50)
str = (3.14, '십', 20, 'one', '3.141592')
튜플에 또 다른 컨테이너 자료형 데이터 저장가능
data = (10, 20, 30, (40, 50, 60))
아이템의 존재 유무를 알 수 있음
studentsTuple = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
searchName = input('학생이름 입력: ')
if searchName in studentsTuple:
print(f'{searchName} 학생은 우리반 학생입니다.')
else:
print(f'{searchName} 학생은 우리반 학생이 아닙니다.')
⇊
학생이름 입력: 김지은
김지은 학생은 우리반 학생입니다.
학생이름 입력: 김누구
김누구 학생은 우리반 학생이 아닙니다.
문자열에서도 사용 가능
##문장에 비속어가 있는지 알아내는 프로그램
wrongWord = ['쫄았다', '짭새', '꼽사리', '먹튀', '지린', '쪼개다', '뒷담 까다']
sentence = '짭새 등장에 강도들은 모두 쫄았다. 그리고 강도들은 지린 듯 도망갔다.'
for word in wrongWord:
if word in sentence:
print(f'비속어: {word}')
⇊
비속어: 쫄았다
비속어: 짭새
비속어: 지린
리스트와 마찬가지로 튜플에 저장된 아이템 개수를 뜻함
students = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
for i in range(len(students)):
print(f'i: {i}')
print(f'students[{i}]: {students[i]}')
⇊
i: 0
students[0]: 홍길동
i: 1
students[1]: 박찬호
i: 2
students[2]: 이용규
i: 3
students[3]: 박승철
i: 4
students[4]: 김지은
n<= [n:m] <m
numbers = (2, 50, 0.12, 1, 9, 7, 17, 35, 100, 3.14)
print('numbers: {}'.format(numbers[2:-2])) ##세번쨰 숫자부터 맨 끝에서 세번째 숫자까지
print('numbers: {}'.format(numbers[2:-2:2])) ## 마지막 숫자는 '단계'
print('numbers: {}'.format(numbers[:-2:2])) ##앞 쪽 숫자 생략(맨 처음부터)
print('numbers: {}'.format(numbers[::2])) ##시작,끝 생략가능(리스트내 숫자) 전부 다 사용)
⇊
numbers: (0.12, 1, 9, 7, 17, 35)
numbers: (0.12, 9, 17)
numbers: (2, 0.12, 9, 17)
numbers: (2, 0.12, 9, 17, 100)
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students[1:4] = ('park chan-ho', 'lee young-gyu', 'kang ho-dong')
print('students: {}'.format(students))
print(type(students))
⇊
students: ['홍길동', 'park chan-ho', 'lee young-gyu', 'kang ho-dong', '김지은']
<class 'list'>
students = ('홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은')
print('students: {}'.format(students[slice(2, 4)]))
print('students: {}'.format(students[slice(4)]))
print('students: {}'.format(students[slice(2, len(students))]))
print('students: {}'.format(students[slice(2, len(students)-2)]))
print('students: {}'.format(students[slice(len(students)-5, len(students)-2)]))
⇊
students: ('홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은')
students: ('이용규', '강호동')
students: ('홍길동', '박찬호', '이용규', '강호동')
students: ('이용규', '강호동', '박승철', '김지은')
students: ('이용규', '강호동')
students: ('박찬호', '이용규', '강호동')
튜플은 리스트와 달리 아이템 추가,변경,삭제 불가능
튜플은 선언시 괄호 생략 가능
students = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
print(students)
print(type(students))
students = '홍길동', '박찬호', '이용규', '박승철', '김지은'
print(type(students))
⇊
('홍길동', '박찬호', '이용규', '박승철', '김지은')
<class 'tuple'>
<class 'tuple'>
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
print(students)
print(type(students))
students = tuple(students)
print(students)
print(type(students))
students = list(students)
print(students)
print(type(students))
⇊
['홍길동', '박찬호', '이용규', '박승철', '김지은']
<class 'list'>
('홍길동', '박찬호', '이용규', '박승철', '김지은')
<class 'tuple'>
['홍길동', '박찬호', '이용규', '박승철', '김지은']
<class 'list'>