[Python][자료구조] 튜플 : 리스트와의 차이점, 아이템 정렬

·2023년 3월 20일
0
post-thumbnail

✒️리스트와 튜플

📌리스트와 튜플의 차이점

튜플은 리스트와 달리 아이템 추가, 삭제, 변경이 불가능하다.


# 리스트와 차이점

studentTuple = ('짱구', '철수', '유리', '훈이', '맹구')
studentList = ['짱구', '철수', '유리', '훈이', '맹구']

# 아이템 추가
studentList.append('영희')
# studentTuple.append('영희') #불가능

# 아이템 삭제
studentList.remove('영희')
# studentTuple.remove('영희') #불가능

# 아이템 변경
studentList[0] = '흰둥이'
# studentTuple[0] = '흰둥이' #불가능 

튜플은 선언 시 괄호 생략이 가능하다

studentList = ['짱구', '철수', '유리', '훈이', '맹구']
studentTuple = '짱구', '철수', '유리', '훈이', '맹구'

print(studentList)
print(type(studentList))
print(studentTuple)
print(type(studentTuple))
💡result

['짱구', '철수', '유리', '훈이', '맹구']
<class 'list'>
('짱구', '철수', '유리', '훈이', '맹구')
<class 'tuple'>

📌 리스트와 튜플 변환

studentList = ['짱구', '철수', '유리', '훈이', '맹구']
studentTuple = '짱구', '철수', '유리', '훈이', '맹구'

print(f'studentList : {type(studentList)}')
print(f'studentTuple : {type(studentTuple)}')
print(f'tuple(studentList) : {tuple(studentList)}')
print(f'list(studentTuple) : {list(studentTuple)}')
💡result

studentList : <class 'list'>
studentTuple : <class 'tuple'>
tuple(studentList) : ('짱구', '철수', '유리', '훈이', '맹구')
list(studentTuple) : ['짱구', '철수', '유리', '훈이', '맹구']

✒️ 아이템 정렬

📌리스트의 sort() 함수

튜플은 수정이 불가능하기 때문에 리스트로 변환 후 정렬한다.

📌sorted() 함수

sorted() 함수를 이용하면 리스트로 변환하지 않고 정렬할 수 있다.
단, sorted()함수는 리스트 자료형을 반환한다

studentTuple = '짱구', '철수', '유리', '훈이', '맹구'
print(studentTuple)
# 리스트로 변환 후 정렬
students = list(studentTuple)
students.sort()
print(students)
# sorted()
print(sorted(studentTuple))
💡result

('짱구', '철수', '유리', '훈이', '맹구')
['맹구', '유리', '짱구', '철수', '훈이']
['맹구', '유리', '짱구', '철수', '훈이']

✍️실습

튜플로 정의된 점수표에서 최고, 최저 점수 삭제 후 총점과 평균 출력

studentScore = (9.5, 7.8, 7.6, 9, 7.5, 8.3)
# 아이템 정렬
scores = sorted(studentScore)
# 최저 최고 점수 삭제
scores.pop(0)
scores.pop()

sum = 0
for score in scores:
    sum += score

scores = tuple(scores)
print(f'studentScore : {scores}')
print(f'총점 : {sum}')
print(f'평균 : {round(sum / len(scores), 2)}')
💡result

studentScore : (7.6, 7.8, 8.3, 9)
총점 : 32.7
평균 : 8.18구', '유리', '짱구', '철수', '훈이']

✒️ 튜플과 반복문

📌 for 문

studentTuple = '짱구', '철수', '유리', '훈이', '맹구'
for i in studentTuple:
    print(i)


studentTuple = '짱구', '철수', '유리', '훈이', '맹구'
💡result

짱구
철수
유리
훈이
맹구

for문을 이용한 내부 튜플 조회


bloodType = (('짱구', 'AB'), ('철수', 'A'), ('유리', 'B'), ('훈이', 'A'), ('맹구', 'O'))
for name, type in bloodType:
   print(f'{name} : {type} ')
💡result

짱구 : AB 
철수 : A 
유리 : B 
훈이 : A 
맹구 : O 

✍️실습

튜플을 이용해서 학급 학생 수가 가장 작은 학급과 가장 많은 학급을 출력해보자

classTuple = ((1, 20), (2, 18), (3, 15), (4, 25), (5, 18))

max = 0
maxC = 0
min = 0
minC = 0
for c, cnt in classTuple:
    if max < cnt or c == 1:
        max = cnt
        maxC = c
    if min > cnt or c == 1:
        min = cnt
        minC = c

print(f'가장 많은 학급 (학생 수) : {maxC}({max})')
print(f'가장 적은 학급 (학생 수) : {minC}({min})')```
코드를 입력하세요
💡result

가장 많은 학급 (학생 수) : 4(25)
가장 적은 학급 (학생 수) : 3(15)
profile
개발하고싶은사람

0개의 댓글