1. 학습
  2. /
  3. 강의
  4. /
  5. 효율적인 Python 코드 작성

Connected

연습 문제

반복문 없이 구하는 포켓몬 합계와 평균

세션에는 720마리 포켓몬의 목록 names가 로드되어 있고, 각 포켓몬의 통계는 NumPy 배열 stats로 로드되어 있습니다. stats의 각 행은 names의 포켓몬 하나에 대응하며, 각 열은 각 포켓몬의 개별 스탯을 나타냅니다(각각 HP, Attack, Defense, Special Attack, Special Defense, Speed).

가장 강한 포켓몬을 찾기 위해 각 포켓몬의 총합 스탯 값(즉, stats의 각 행의 합)과 평균 스탯 값(즉, stats의 각 행의 평균)을 구하려고 합니다.

아래의 for 반복문은 이 값을 수집하기 위해 작성되었습니다:

poke_list = []

for pokemon,row in zip(names, stats):
    total_stats = np.sum(row)
    avg_stats = np.mean(row)
    poke_list.append((pokemon, total_stats, avg_stats))

지침

100 XP
  • 위의 for 반복문을 NumPy로 대체하세요:
    • .sum() 메서드와 올바른 축을 지정해 총합 스탯 배열(total_stats_np)을 만드세요.
    • .mean() 메서드와 올바른 축을 지정해 평균 스탯 배열(avg_stats_np)을 만드세요.
    • names 리스트, total_stats_np 배열, avg_stats_np 배열을 결합해 최종 출력 리스트(poke_list_np)를 만드세요.