(1) 사진에 있는 인물이 name에 있는지 확인한다.
(2) name에 있다면 그 이름에 맞는 점수를 최종 점수에 합산한다.
그리고 이 2개의 조건을 map()
을 사용하여 간결하게 표현했다.
li = map(lambda x : name.index(x) if x in name else -1, ph)
인물이 name에 있다면 인덱스 값을, 없다면 -1을 반환
score = list(map(lambda x : yearning[x] if x != -1 else 0, li))
인덱스값이 -1이 아니라면 그리움 점수를, -1이라면 0을 반환
answer.append(sum(score))
점수가 담긴 리스트에 sum()을 사용해 최종 점수를 구했다.
처음에는 name, yearning 에서 한번씩 인덱싱을 사용해야 하기 때문에 zip()
을 사용할까 했지만 이 방법도 결국 2번의 인덱싱이 필요하기 때문에 사용하지 않았다.