성적이 낮은 순서로 학생 출력하기 : 정렬

주리·2022년 12월 7일
0

코테_정렬

목록 보기
2/3
post-thumbnail

로직

  1. n 입력받기
  2. n명의 "이름 성적" 입력받기 student[name,score]
  3. 성적이 낮은 순서대로 (오름차순) → sort
  4. 이름만 student[i][0] 출력하기

코드

  • 생각보다 어려웠다,,,따흑
# student=[[홍길동,95], [이순신,77]]

n = int(input())
student=[]
for i in range(n) :
  #data=list(input().split())
  #student.append(data)
  # 이렇게 입력받으면 student=[['홍길동','95'], ['이순신','77']]
  # 모두 str되서 정렬할 수 없음,,

  # 각자 str로 입력받고 → 점수를 int형으로 student list에 넣어줘야함
  data = input().split()
  student.append((data[0],int(data[1]))) 
  # student.append(data[0],int(data[1]))
  # 그냥 이렇게 append하면 2개의 값을 추가할 수 없다고 오류가 난다 → () 괄호로 잘 묶어줘야 함 

student=sorted(student,key=lambda x:x[1])
#람다,,하단에 설명 

for i in student:
  print(i[0], end=' ')
# student 리스트에서 하나씩 값을 i('이순신',77)로 가져와서 그중 0번째 값을 print 하고 end=' '로 띄어쓰기 함 해준다,,


lambda를 이용한 sorted()함수

lambda란 무엇인가?

→ 이름없는 함수라고 생각하자,,

lambda 매개변수 : 결과값

sorted()함수에서 lambda 이용하기

list명 = sorted(list명, reverse=T/F , key=)

sorted(student , key = lambda x : x[1])
# → student 리스트를 
# → 오름차순으로
# → student[i][1] 두번째 값을 기준으로 정렬하겠다는 의미
profile
완벽한 글 보다, 그 과정들을 기록하는 개발자

0개의 댓글