- 튜플 길이
- 튜플의 아이템 개수를 확인하자!
리스트와 마찬가지로, 튜플에 저장된 아이템 개수를 튜플 길이라고 한다.
'홍길동' '박찬호' '이용규' '박승철' '김지은'
※※※ 튜플 길이 : 5 ※※※
students = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
sLength = len(students)
print('students Length : {}'.format(sLength))
- len()과 반복문을 이용하면 튜플의 아이템 조회가 가능하다.
for문을 이용한 방법
# for문을 이용한 방법
# for i in range(len(students)):
# print('i : {}'.format(i))
# print('students[{}] : {}'.format(i, students[i]))
while문을 이용한 방법
# while문을 이용한 방법
# n = 0
# while n < sLength:
# print('n : {}'.format(n))
# print('students[{}] : {}'.format(n, students[n]))
# n += 1
또 다른 방법
# 또 다른 방법
# for s in students:
# print('student : {}'.format(s))
- 실습
좋아하는 운동 종목을 튜플에 저장하고 반복문을 이용해서 출력해 보자.
myFavoriteSports = ('수영', '야구', '배구', '축구', '농구', '조깅')
# for i in range(len(myFavoriteSports)):
# print('myFavoriteSports[{}] : {}'.format(i , myFavoriteSports[i]))
for s in myFavoriteSports:
print('myFavoriteSports : {}'.format(s))
n = 0
while n < len(myFavoriteSports):
print('myFavoriteSports[{}] : {}'.format(n , myFavoriteSports[n]))
n += 1
- 튜플 결합
- 두 개의 튜플을 합쳐서 새로운 튜플을 만들자!
# 두 개의 튜플을 결합할 수 있다!
# studentTuple1 = ('홍길동', '박찬호', '이용규')
# studentTuple2 = ('박승철', '김지은', '강호동')
#
# studentTuple3 = studentTuple1 + studentTuple2 # + 로 튜풀 합치기!
# print('studentTuple3 : {}'.format(studentTuple3))
- 리스트에서 사용할 수 있는 extend()함수를 튜플에서는 사용할 수 없다.
studentList1 = ['홍길동', '박찬호', '이용규']
studentList2 = ['박승철', '김지은', '강호동']
studentList1.extend(studentList2)
print('studentList1: {}'.format(studentList1))
studentTuple1 = ('홍길동', '박찬호', '이용규')
studentTuple2 = ('박승철', '김지은', '강호동')
studentTuple1.extend(studentTuple2)
print('studentTuple1: {}'.format(studentTuple1)) # 튜플에서는 extend()를 사용할 수 없으므로 오류가 발생한다!
- 실습
튜플을 이용해서 나와 친구가 좋아하는 번호를 합치되 번호가 중복되지 않게 하는 프로그램을 만들자.
myFavoriteNumbers = (1, 3, 5, 6, 7)
friendFavoriteNumbers = (2, 3, 5, 8, 10)
print('myFavoriteNumbers : {}'.format(myFavoriteNumbers))
print('friendFavoriteNumbers : {}'.format(friendFavoriteNumbers))
# 합치는 부분
# result = myFavoriteNumbers + friendFavoriteNumbers
# print('result : {}'.format(result)) # 중복된 숫자가 그대로 출력된다!
# 중복이 없도록 합치기 (not in , in 사용!)
for number in friendFavoriteNumbers:
if number not in myFavoriteNumbers:
# myFavoriteNumbers + number # 튜플 + 정수 이므로 더하기 할 수 없다! number를 (number, )로 바꾸면 튜플형이 된다!
myFavoriteNumbers = myFavoriteNumbers + (number, ) # 튜플 + 튜플이므로 가능!
print('myFavoriteNumbers : {}'.format(myFavoriteNumbers))
- 튜플 슬라이싱
- 원하는 아이템만 뽑아내자!
리스트와 마찬가지로 [n:m]을 이용하면 리스트에서 원하는 아이템만 뽑아낼 수 있다.
('홍길동' '박찬호' '이용규' '강호동' '박승철' '김지은')
슬라이싱 ← [2:4]
2 <= n < 4 # 리스트와 마찬가지로 앞숫자 포함 뒷수자의 앞까지!
'이용규' '강호동'
students = ('홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은')
print('students : {}'.format(students))
print('students[2:4] : {}'.format(students[2:4]))
print('students[:4] : {}'.format(students[:4])) # 시작값 생략
print('students[2:] : {}'.format(students[2:])) # 끝값 생략
print('students[2:-2] : {}'.format(students[2:-2])) # 음수는 뒤에서 부터!
print('students[-5:-2] : {}'.format(students[-5:-2])) # 음수는 뒤에서 부터!
numbers = (2, 50, 0.12, 1, 9, 7, 17)
print('numbers : {}'.format(numbers))
print('numbers[2:4] : {}'.format(numbers[2:4]))
print('numbers[:4] : {}'.format(numbers[:4])) # 시작값 생략
print('numbers[2:] : {}'.format(numbers[2:])) # 끝값 생략
print('numbers[2:-2] : {}'.format(numbers[2:-2])) # 음수는 뒤에서 부터!
print('numbers[-5:-2] : {}'.format(numbers[-5:-2])) # 음수는 뒤에서 부터!
- 슬라이싱할 때 단계를 설정할 수 있다.
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]))
- 튜플은 슬라이싱을 이용해서 아이템을 변경할 수 없다.
students = ('홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은')
students[1:4] = ('park chanho', 'lee yonggyu', 'gang hodong')
print('students : {}'.format(students)) # 오류가 발생한다!
- 리스트에 튜플 아이템으로 변경 가능
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
students[1:4] = ('park chanho', 'lee yonggyu', 'gang hodong')
print('students : {}'.format(students))
print(type(students))
- slice()함수를 이용해서 아이템을 슬라이싱할 수 있다.
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
print('students : {}'.format(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.append('강호동') 가능
아이템 변경 students[3] = '유재석' 가능
아이템 삭제 students.pop() 가능
students = ('홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은')
아이템 추가 students.append('강호동') 불가능
아이템 변경 students[3] = '유재석' 불가능
아이템 삭제 students.pop() 불가능
- 튜플은 선언 시 괄호 생략이 가능하다.
리스트
students = ['홍길동', '박찬호', '이용규', '강호동']
print(students)
print(type(students))
튜플
students = ('홍길동', '박찬호', '이용규', '강호동')
print(students)
print(type(students))
튜플
students = '홍길동', '박찬호', '이용규', '강호동' # 괄호 생략!
print(students)
print(type(students))
- 리스트와 튜플은 자료형 변환이 가능하다!
students = ['홍길동', '박찬호', '이용규', '강호동']
print(students)
print(type(students))
students = tuple(students) # 자료형 변환 가능!!
print(students)
print(type(students))
students = list(students) # 자료형 변환 가능!!
print(students)
print(type(students))
students = ['홍길동', '박찬호', '이용규', '강호동']
print(students)
print(type(students))
students = tuple(students) # 자료형 변환 가능!! list → tuple
print(students)
print(type(students))
students = list(students) # 자료형 변환 가능!! tuple → list
print(students)
print(type(students))
- 실습
튜플을 이용한 점수표에서 최저, 최고 점수를 삭제한 후 총점과 평균을 출력해 보자.
점수1 9.5
점수2 8.9
점수3 9.2
점수4 9.8
점수5 8.8
점수6 9.0
playerScore = (9.5, 8.9, 9.2, 9.8, 8.8, 9.0)
print('playerScore : {}'.format(playerScore))
print('playerScore type : {}'.format(type(playerScore)))
playerScore = list(playerScore) # 리스트로 자료형 변환 리스트가 되었으므로 sort할 수 있다!
print('playerScore type : {}'.format(type(playerScore)))
playerScore.sort()
print('playerScore : {}'.format(playerScore))
playerScore.pop(0) # 최저 점수 삭제
playerScore.pop(len(playerScore) - 1) # 최고 점수 삭제
print('playerScore : {}'.format(playerScore))
playerScore = tuple(playerScore) # 다시 튜플로 변환!
print('playerScore type : {}'.format(type(playerScore)))
sum = 0 # 총점
avg = 0 # 평균
for s in playerScore:
sum += s
avg = sum / len(playerScore)
print('총점 : {}'.format(sum))
print('평점 : {}'.format(avg))
print('총점 : %.2f' %sum)
print('평점 : %.2f' %avg)
이 글은 제로베이스 데이터 취업 스쿨의 강의자료 일부를 발췌하여 작성되었습니다.