1. ホーム
  2. python

[解決済み] Pythonでリストに対応する辞書のキー値を反復処理する。

2022-05-29 05:47:05

質問

Python 2.7で作業しています。私は、キーとしてチーム名を持つ辞書を持っており、値のリストとして各チームの得点と許容の量を持っています。

NL_East = {'Phillies': [645, 469], 'Braves': [599, 548], 'Mets': [653, 672]}

辞書を関数に送り込み、各チーム(キー)を反復処理できるようにしたい。

これが私が使っているコードです。現在、私はチームごとに行くことができるだけです。どのように各チームを繰り返し、各チームの予想勝率を表示するのでしょうか。

def Pythag(league):
    runs_scored = float(league['Phillies'][0])
    runs_allowed = float(league['Phillies'][1])
    win_percentage = round((runs_scored**2)/((runs_scored**2)+(runs_allowed**2))*1000)
    print win_percentage

ご協力ありがとうございました。

どのように解決するのですか?

辞書を反復処理するためのいくつかのオプションがあります。

辞書そのものを反復処理する場合 ( for team in league ) を反復する場合、辞書のキーに対して反復することになります。 forループでループする場合、ディクショナリに対してループしても、同じ動作になります ( league ) 自体をループしても、あるいは league.keys() :

for team in league.keys():
    runs_scored, runs_allowed = map(float, league[team])

キーと値の両方を一度に反復処理することも可能で、その場合は league.items() :

for team, runs in league.items():
    runs_scored, runs_allowed = map(float, runs)

反復処理中にタプルの展開処理を行うこともできます。

for team, (runs_scored, runs_allowed) in league.items():
    runs_scored = float(runs_scored)
    runs_allowed = float(runs_allowed)