プログラムとか 思ったこととか 徒然ブログ 投稿一覧へ戻る

タグ "protocol" が付いている投稿一覧

【 Effective Python, 2nd Edition 】引数として受け取った値を関数内で複数回「消費」する場合には要注意! イテレータ ( iterator ) とコンテナ ( container ) の違いをちゃんと認識しよう!

Tags: Python , generator , iterable , iterator , Effective , container , protocol

Published 2020年6月29日20:44 by T.Tsuyoshi

関数が引数としてリストをとる場合、そのリストを関数内部で複数回参照することはよくあります。 例えば、台湾旅行に行った日本人が訪れた観光地ごとの訪問者数のリストがあるとします (千人/年)。 そして人気度をみるために、それぞれの観光地が占める割合を計算したいとしましょう。 そのためには、まず訪問者数の合計を求め、続けて、それぞれの観光地の訪問数をその合計で割ることになりますね。 def normalize(numbers): total = sum(numbers) print(f"合計訪問者数: {total}") result = [] for value in numbers: percent …