1

Pythonには2つの辞書があります。1つは、リーグテーブル内のチームとそのランクのリストです。各チームがキーであり、それらのランクが関連する値です。もう1つは、各チームに関するデータであり、チーム名はキーの値です。

RankDict = {'Tigers':'1','Lions':'2', 'Pumas':'3', 'Wolves':'4'}

TeamDict = {'TeamRecords':[{'Team': 'Lions', 'Location':'Greenville', 
             'HomeGround':'Trec Park', 'Coach': 'K. Wilson'},
            {'Team':'Pumas', 'Location':'Fairlodge', 
             'HomeGround':'Fairlodge Fields', 'Coach':'G. Kennedy'}]}

私がやりたいのはTeamDict、チームに関連付けられているランクに基づいて辞書から詳細を印刷することですRankDictが、キーは一般的ではないため、単純なキー比較を行うことはできません。誰かが私を助けることができますか?

このタイプの辞書の比較に関しては、ドキュメントに何も見つかりません。多分それは不可能ですか?

4

1 に答える 1

2

以下は、チーム、ランク、およびチームの詳細(ランクでソート)を出力します。

import operator

RecordsByTeam = {}
for r in TeamDict['TeamRecords']:
    RecordsByTeam[r['Team']] = r

for team, rank in sorted(RankDict.items(), key=operator.itemgetter(1)):
    print team
    print rank
    try:        
        print RecordsByTeam[team]
    except KeyError:
        print 'No details could be found for team', team

各チームに関する情報が含まれていないtry/exceptため、チームの詳細を印刷するときに実行していることに注意してください。TeamDict

また、のランクには整数を使用する必要があることに注意してくださいRankDict。そうしないと、たとえば'11'ランクとしてチームが存在する場合、上記のコードは正しくソートされません(次のようにソートされます:、、、'11')。'2''3''4'

于 2012-07-16T12:35:32.943 に答える