더북(TheBook)

BETTER WAY 17
인수를 순회할 때는 방어적으로 하자

 

 

파라미터로 객체의 리스트를 받는 함수에서 리스트를 여러 번 순회해야 할 때가 종종 있다. 예를 들어 미국 텍사스주의 여행자 수를 분석하고 싶다고 해보자. 데이터 집합은 각 도시의 방문자 수(연도별 백만 명 단위)라고 하자. 각 도시에서 전체 여행자 중 몇 퍼센트를 받아들이는지 알고 싶을 것이다.

이런 작업을 하려면 정규화 함수가 필요하다. 정규화 함수에서는 입력을 합산해서 연도별 총 여행자 수를 구한다. 그러고 나서 각 도시의 방문자 수를 전체 방문자 수로 나누어 각 도시가 전체에서 차지하는 비중을 알아낸다.

def normalize(numbers):

total = sum(numbers)

result = []

for value in numbers:

percent = 100 * value / total

result.append(percent)

return result

 

이 함수는 방문 리스트를 받아서 동작한다.

visits = [15, 35, 80]

percentages = normalize(visits)

print(percentages)

 

>>>

[11.538461538461538, 26.923076923076923, 61.53846153846154]

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.