[Zero-Base]데이터 취업 스쿨 스터디 노트(6)

강현정·2024년 4월 25일

zero_base

목록 보기
7/54

✏️리스트의 for문

classCnt = [['1학급',18],
            ['2학급',19],
            ['3학급',23],
            ['4학급',21],
            ['5학급',20],
            ['6학급',22],
            ['7학급',17]]

min_class = min(classCnt, key = lambda x:x[1])
max_class = max(classCnt, key = lambda x:x[1])


print(f'학생 수가 가장 적은 학급(학생수): {min_class[0]}({min_class[1]}명)')

print(f'학생 수가 가장 많은 학급(학생수): {max_class[0]}({max_class[1]}명)')
  • lambda 함수를 사용하여 풀어보았다.

✏️리스트의 while문

#1
classCnt = [['1학급',18],
            ['2학급',19],
            ['3학급',23],
            ['4학급',21],
            ['5학급',20],
            ['6학급',22],
            ['7학급',17]]
n=0;sum = 0;avg = 0

while n < 7:
    print(f'{classCnt[n][0]}: {classCnt[n][1]}명')
    sum += classCnt[n][1]
    n +=1
print(f'전체 학생 수: {sum}')
print(f'평균 학생 수: {sum / 7:.2f}')

#2

classCnt = [[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(classCnt):
    if minCnt == 0 or minCnt > classCnt[n][1]:
        minclassNo = classCnt[n][0]
        minCnt = classCnt[n][1]

    if maxCnt < classCnt[n][1]:
        maxclassNo = classCnt[n][0]
        maxCnt = classCnt[n][1]
    n+=1
    
print(minclassNo,minCnt)
print(maxclassNo,maxCnt)
  • while문을 사용해서 리스트를 출력하고 합계와 평균을 계산하는 문제였다. 추가로 while문 안에 if문을 작성하여 조건을 붙여 과락과목을 출력하는 문제도 풀어보았다.

✏️enumerate()

#1
sports = ['농구','축구','수구','마라톤','테니스']

for i in range(len(sports)):
    print(f'{i}:{sports[i]}')

for idx, value in enumerate(sports):
    print(f'{idx}:{value}')
    
 #2
 message = input('메시지 입력: ')
cnt = 0
for idx, value in enumerate(message):
    if value == ' ':
        cnt +=1
print(f'공백 개수:{cnt}')
  • enumerate 함수를 사용해서 인덱스와 아이템을 한번에 열거할 수 있다. 두번째 메세지를 입력받아서 공백개수를 출력하는 문제에서는 입력받은 문자들이 enumerate()함수를 통해 어떻게 index와 맵핑이 되는지 알게 되었다. 각 문자 한개씩 인덱스에 연결 되는 구조를 확인해 볼 수 있었다.

🤔회고록
중간고사 공부하느라 잠깐 강의를 쉬었더니 확실히 코드치는게 어색해졌다. 단순한 알고리즘인데도 뚝딱 거리는게...한숨나왔다..ㅎㅎ 시간 없더라도 기말고사 기간에는 한문제씩이라도 꼭 풀고 연습을 해야겠다는 생각이 들었다.

0개의 댓글