family = ('엄마', '아빠', '나', '동생')
schedule = ('수업', '공부', '헬스')
names = ('홍길동', '박찬호', '이용규')
print(names[0]) # 홍길동
print(names[2]) # 이용규
students = ('지민', '정국', '뷔')
print('정국' in students) # True
print('RM' not in students) # True
sports = ('축구', '야구', '농구')
print(len(sports)) # 3
extend()
는 튜플에서는 사용할 수 없어!a = ('Python', 'Java')
b = ('C++', 'Go')
c = a + b
print(c) # ('Python', 'Java', 'C++', 'Go')
data = ('a', 'b', 'c', 'd', 'e')
print(data[1:4]) # ('b', 'c', 'd')
print(data[::-1]) # ('e', 'd', 'c', 'b', 'a')
a = [1, 2, 3]
b = tuple(a)
print(b) # (1, 2, 3)
c = list(b)
print(c) # [1, 2, 3]
항목 | 리스트 | 튜플 |
---|---|---|
괄호 | [] | () 또는 생략 가능 |
변경 가능 여부 | 가능 ✅ | 불가능 ❌ |
메서드 | append() , remove() 등 다양 | 거의 없음 |
용도 | 데이터 변경이 필요한 경우 | 데이터 변경이 필요 없는 경우 |
list()
로 변환 → sort()
사용 후 다시 tuple()
변환sorted()
사용 → 결과는 리스트 반환👉 실습 : 점수표에서 최고/최저점 제거 후 총점과 평균 구하기
scores = (90, 75, 100, 85, 60, 95)
# 최고/최저 제거
score_list = list(scores)
score_list.remove(max(score_list))
score_list.remove(min(score_list))
total = sum(score_list)
avg = total / len(score_list)
print("총점:", total) # 총점: 345
print("평균:", avg) # 평균: 86.25
for
문으로 튜플 아이템 순회 가능👉 실습 : 학급별 학생 수 출력 + 전체 학생 수 + 평균 학생 수 구하기
classes = (("1반", 25), ("2반", 28), ("3반", 22))
total = 0
for class_name, students in classes:
print(f"{class_name} 학생 수: {students}")
total += students
print("전체 학생 수:", total)
print("평균 학생 수:", total / len(classes))
1반 학생 수: 25
2반 학생 수: 28
3반 학생 수: 22
전체 학생 수: 75
평균 학생 수: 25.0
for
+ if
→ 조건에 맞는 아이템만 출력 가능continue
로 특정 조건 건너뛰기 👉 실습 ① 국어/영어/수학/과학/국사 점수를 입력받아 과락 과목 출력
subjects = (("국어", 80), ("영어", 45), ("수학", 92), ("과학", 55), ("국사", 70))
for subject, score in subjects:
if score < 60:
print(f"{subject} 과락: {score}")
영어 과락: 45
과학 과락: 55
👉 실습 ① 학급 학생 수 중 최소/최대 학급 찾기
classes = (("1반", 25), ("2반", 28), ("3반", 22))
min_class = min(classes, key=lambda x: x[1])
max_class = max(classes, key=lambda x: x[1])
print("학생 수 가장 적은 학급:", min_class)
print("학생 수 가장 많은 학급:", max_class)
학생 수 가장 적은 학급: ('3반', 22)
학생 수 가장 많은 학급: ('2반', 28)
while
문으로도 튜플 아이템 순회 가능students = (25, 28, 22)
i = 0
total = 0
while i < len(students):
print(f"{i+1}반 학생 수: {students[i]}")
total += students[i]
i += 1
print("전체 학생 수:", total)
print("평균 학생 수:", total / len(students))
1반 학생 수: 25
2반 학생 수: 28
3반 학생 수: 22
전체 학생 수: 75
평균 학생 수: 25.0
while
+ if
→ 조건 검사하며 순회 가능subjects = (("국어", 80), ("영어", 45), ("수학", 92), ("과학", 55), ("국사", 70))
i = 0
while i < len(subjects):
subject, score = subjects[i]
if score < 60:
print(f"{subject} 과락: {score}")
i += 1
영어 과락: 45
과학 과락: 55
👉 실습 ① 학급별 학생 수 중 최소/최대 찾기
classes = (("1반", 25), ("2반", 28), ("3반", 22))
i = 0
min_class = classes[0]
max_class = classes[0]
while i < len(classes):
if classes[i][1] < min_class[1]:
min_class = classes[i]
if classes[i][1] > max_class[1]:
max_class = classes[i]
i += 1
print("학생 수 가장 적은 학급:", min_class)
print("학생 수 가장 많은 학급:", max_class)
학생 수 가장 적은 학급: ('3반', 22)
학생 수 가장 많은 학급: ('2반', 28)