코드네임 :
🌀파이썬 백준🌀 #1546 본문
흠 scores까지는 쓰긴했는데 다음을 모르겟늠 ㅋㅋ
# 모든 점수 나누기 최댓값 * 100
# 시험 본 과목 개수 N < 1000
# map split으로 성적 입력 받음
import sys
N = int(sys.stdin.readline())
scores = list(map(int,sys.stdin.readline().split()))
scores = list(map(lambda x : x/max(scores)*100,scores)) #마지막은 scores만큼 반복하라는 뜻
avg = (sum(scores)/len(scores)) # sum(scores) : 위에서 scores리스트에 있는 모든 변환된 점수를 더함
print(avg)
흠 찾아보니 람다를 쓰라는데... 람다 까먹은지 100만년 된듯
람다!
lambda 매개변수 : 표현식
다음은 두 수를 더하는 함수입니다.
>>> def hap(x, y):
... return x + y
...
>>> hap(10, 20)
30
람다형식으로
>>> (lambda x,y: x + y)(10, 20)
30
람다가 쓰이는 법
map()
먼저 map 함수를 볼까요?
map(함수, 리스트)
이 함수는 함수와 리스트를 인자로 받고 리스트로부터 원소를 하나씩 꺼내서 함수를 적용시킨 다음, 그 결과를 새로운 리스트에 담아줌
>>> map(lambda x: x ** 2, range(5)) # 파이썬 2
[0, 1, 4, 9, 16]
>>> list(map(lambda x: x ** 2, range(5))) # 파이썬 2 및 파이썬 3
[0, 1, 4, 9, 16]
위의 map 함수가 매개변수로 받은 함수는 lambda x: x ** 2구요, 리스트로는 range(5)를 받았습니다. range 함수는 알고계시죠? range(5) 라고 써주면 [0, 1, 2, 3, 4]라는 리스트를 돌려줍니다. 그리고 x ** 2 라는 것은 x 값을 제곱하라는 연산자죠.
map 함수는 리스트에서 원소를 하나씩 꺼내서 함수를 적용시킨 결과를 새로운 리스트에 담아주니까, 위의 예제는 0을 제곱하고, 1을 제곱하고, 2, 3, 4를 제곱한 것을 새로운 리스트에 넣어주는 것입니다.
'프로그래밍 > Python' 카테고리의 다른 글
🌀백준 파이썬🌀 #9086 (0) | 2024.09.22 |
---|---|
🌀백준 파이썬🌀 #27866,2743 (0) | 2024.09.22 |
파이썬 추가.. (0) | 2024.04.30 |
🌀파이썬 백준🌀 #10811 (0) | 2024.03.29 |
🌀파이썬 백준🌀 #3052 (0) | 2024.03.26 |