これは簡単です。 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の場合、をitems
に変更すると、出力はu'CH'
ではなく'CH'
になります。
異なる国で同じタイムゾーン名が使用されていると、それは壊れてしまいます。 'country_timezones'にはそのような名前はありません。しかし、いくつかの一般的なタイムゾーンはUTC、US/Central、US/Eastern、Canada/Centralなどではありません。 – jfs
@ J.F.Sebastian最後の文章は何を意味しましたか?それらのタイムゾーンは何に含まれていませんか? – Snowman
'pytz'で定義されたすべてのタイムゾーンはちょうど一つの国にマップされています。したがって、それは壊れません。 – jsalonen