0424 자료구조 2일차(~31)

박영선·2023년 4월 25일
0

리스트와 튜플

가장 큰 차이점 : 리스트는[] 튜플은() / 리스트는 아이템 추가 변경 삭제 가능, 튜플은 불가능

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

리스트와 튜플은 자료형 변환이 가능

튜플 아이템 정렬

튜플은 수정이 불가능하므로 리스트로 변환 후 정렬, 이후 다시 튜플로 변환

sorted()함수 이용하면 튜플도 정렬 가능 / 반환되는 자료는 리스트 자료형

튜플과 for문

for문 사용해서 튜플 아이템 참조하기

for문 이용하면 튜플의 아이템을 자동으로 참조 가능

for문 이용하면 튜플 내부에 있는 튜플도 조회 가능

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

for classNo, cnt in studentCnts:
    print('{}학급 학생 수 : {}'.format(classNo,cnt))
#이거보단 위 방식이 나음
for i in range(len(studentCnts)):
    print('{}학급 학생수 : {}'.format(studentCnts[i][0],studentCnts[i][1]))
studentCnts = ((1,18),(2,19),(3,23),(4,21),(5,20),(6,22),(7,17))

sum = 0; avg = 0

for classNo, cnt in studentCnts:
    print('{}학급의 학생수 : {}'.format(classNo, cnt))
    sum += cnt

print('전체 학생 수 : {}'.format(sum))
print('평균 학생 수 : {}'.format(int(sum/len(studentCnts))))

for문과 if문 이용해서 과락과목 출력하기

튜플과 while문

while문 사용 시 다양한 방법으로 아이템 조회 가능

while문 사용 학급별 학생 수 구하기

studentCnts = ((1,18),(2,19),(3,23),(4,21),(5,20),(6,22),(7,17))

sum = 0; avg = 0; n=0

while n < len(studentCnts):
    classNo = studentCnts[n][0]
    cnt = studentCnts[n][1]
    print('{}학급 학생 수 : {}명'.format(classNo,cnt))

    sum += cnt
    n+=1

print('전체학생 수 : {}명'.format(sum))
print('평균학생 수 : {}명'.format(int(sum/len(studentCnts))))

while문 사용 과락점수 구하기

minScore = 60
scores = (('국어', 58), ('영어',77),('수학',89),('과학',99),('국사',50))

n=0
while n < len(scores):
    if scores[n][1] < minScore:
        print('과락 과목 : {} 점수 : {}'.format(scores[n][0],scores[n][1]))

    n+=1

while문 사용 학생 수 구하기

studentCnts = ((1, 18), (2, 19), (3, 23), (4, 21), (5, 20), (6, 22), (7, 17))

minClassNo =0; maxClassNo=0
minCnt =0; maxCnt=0

n=0
while n < len(studentCnts):
    if minCnt ==0 or minCnt > studentCnts[n][1]:
        minClassNo = studentCnts[n][0]
        minCnt = studentCnts[n][1]

    if maxCnt < studentCnts[n][1]:
        maxClassNo = studentCnts[n][0]
        maxCnt = studentCnts[n][1]
    n+=1

print('학생 수 가장 적은 학급(학생수) : {}학급 / {}명'.format(minClassNo,minCnt))
print('학생 수 가장 많은 학급(학생수) : {}학급 / {}명'.format(maxClassNo,maxCnt))
profile
데이터분석 공부 시작했습니다

0개의 댓글