これは簡単。dict
各国をタイムゾーンのリストにマッピングします。list
各メンバーをにマップし直したいとしますdict
。
答えを出すだけでなく、その答えを見てみましょう。
まず、dict
各国を単一のタイムゾーンにマッピングした場合、これは単純な逆マッピングになります。
timezone_countries = {timezone: country
for country, timezone in country_timezones.iteritems()}
しかし、これは機能しません。タイムゾーンのリストへのマッピングがあり、そのリスト内の各タイムゾーンを国にマッピングし直したいとします。その英語の説明「そのリストの各タイムゾーン」は、Pythonに簡単に翻訳できます。
timezone_countries = {timezone: country
for country, timezones in country_timezones.iteritems()
for timezone in timezones}
ここでそれが実行されています:
>>> from pytz import country_timezones
>>> timezone_countries = {timezone: country
for country, timezones in country_timezones.iteritems()
for timezone in timezones}
>>> timezone_countries['Europe/Zurich']
u'CH'
補足:Python 2と3については言及していなかったので、2と仮定しました。3を使用している場合は、に変更iteritems
するitems
と、出力は'CH'
の代わりになりu'CH'
ます。