이 쉽게입니다. 각 국가를 시간대 목록에 매핑하는 dict
이 있습니다. 각 list
회원을 dict
에 다시 매핑하고 싶습니다.
답을 제공하기보다는 가져 오는 방법을 알아 보겠습니다. 당신은 단지 하나의 시간대에 각 나라를 매핑 dict
이 있다면
첫째,이 간단한 역 매핑 될 것이다 :
timezone_countries = {timezone: country
for country, timezone in country_timezones.iteritems()}
하지만이 작동하지 않습니다; 당신은 시간대 목록에 대한 매핑을 가지고 있으며, 그 목록에있는 각 시간대를 다시 국가로 매핑하려고합니다. 그 영어 설명 "그 목록의 각 시간대는"파이썬 하찮게 번역 : 그것은 행동에 여기
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'
사이드 참고 : 파이썬 2 대 3을 언급하지 않았다, 그래서 나는 2라고 생각했습니다. 3을 사용하는 경우 iteritems
을 items
으로 변경하면 u'CH'
대신에 출력이 'CH'
이됩니다.
다른 국가에서 동일한 시간대 이름을 사용하면 깨질 수 있습니다. 'country_timezones'에는 그런 이름이 없습니다. 하지만 일부 일반적인 시간대는 UTC, 미국/중부, 미국/동부, 캐나다/중앙 등이 아닙니다. – jfs
@ J.F.Sebastian 마지막 문장은 무엇을 의미합니까? 그 시간대는 무엇에 있지 않습니까? – Snowman
'pytz'에 정의 된 모든 시간대는 정확하게 하나의 국가에 매핑됩니다. 따라서, 그것은 깨지지 않습니다. – jsalonen