這很容易。你有一個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'
。
如果在不同的國家使用相同的時區名稱,它會中斷。 'country_timezones'中沒有這樣的名字。但是一些常見的時區不在其中,例如,UTC,美國/中部,美國/東部,加拿大/中部等等。 – jfs
@ J.F.Sebastian您的最後一句話是什麼意思?那些時區不在? – Snowman
'pytz'中定義的所有時區都映射到一個國家。因此,它不會中斷。 – jsalonen