Pytz公共时区按关排序

2024-04-25 14:15:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建这个函数是为了得到一个带有偏移量的公共时区的两元组。在

[(item, datetime.datetime.now(pytz.timezone(item)).strftime('%z') + " " + item) for item in pytz.common_timezones]

我从职能部门得到了类似的消息

^{pr2}$

如何按偏移量排序?目前是按ASC分类的


Tags: 函数in消息fordatetimecommonitemnow
3条回答

我不确定我是否能正确理解你,但你可以试试这个:

>>> tz = [(item, datetime.datetime.now(pytz.timezone(item)).strftime('%z') + " " + item) for item in pytz.common_timezones]
>>> sorted(tz, key=lambda x: int(x[1].split()[0]))
[('Pacific/Midway', '-1100 Pacific/Midway'), ('Pacific/Niue', '-1100 Pacific/Niue'), ('Pacific/Pago_Pago', '-1100 Pacific/Pago_Pago'), ('Pacific/Honolulu', '-1000 Pacific/Honolulu'), ...

我在这个项目中找到了答案

{a1}

这正是我想要的。在

我导入了漂亮的时区选项,这些选项的顺序是正确的。在

试试这个:

tzs = [('Africa/Abidjan', '+0000 Africa/Abidjan'), ('Africa/Accra', '+0000 Africa/Accra'), ('Africa/Addis_Ababa', '+0300 Africa/Addis_Ababa'), ('Africa/Algiers', '+0100 Africa/Algiers'), ('Africa/Asmara', '+0300 Africa/Asmara'), ('Africa/Bamako', '+0000 Africa/Bamako'), ('Africa/Bangui', '+0100 Africa/Bangui'), ('Africa/Banjul', '+0000 Africa/Banjul'), ('Africa/Bissau', '+0000 Africa/Bissau'), ('Africa/Blantyre', '+0200 Africa/Blantyre'), ('Africa/Brazzaville', '+0100 Africa/Brazzaville'), ('Africa/Bujumbura', '+0200 Africa/Bujumbura'), ('Africa/Cairo', '+0200 Africa/Cairo'), ('Africa/Casablanca', '+0100 Africa/Casablanca'), ('Africa/Ceuta', '+0200 Africa/Ceuta'), ('Africa/Conakry', '+0000 Africa/Conakry'), ('Africa/Dakar', '+0000 Africa/Dakar'), ('Africa/Dar_es_Salaam', '+0300 Africa/Dar_es_Salaam'), ('Africa/Djibouti', '+0300 Africa/Djibouti'), ('Africa/Douala', '+0100 Africa/Douala'), ('Africa/El_Aaiun', '+0000 Africa/El_Aaiun'), ('Africa/Freetown', '+0000 Africa/Freetown'), ('Africa/Gaborone', '+0200 Africa/Gaborone'), ('Africa/Harare', '+0200 Africa/Harare'), ('Africa/Johannesburg', '+0200 Africa/Johannesburg'), ('Africa/Juba', '+0300 Africa/Juba'), ('Africa/Kampala', '+0300 Africa/Kampala'), ('Africa/Khartoum', '+0300 Africa/Khartoum'), ('Africa/Kigali', '+0200 Africa/Kigali'), ('Africa/Kinshasa', '+0100 Africa/Kinshasa'), ('Africa/Lagos', '+0100 Africa/Lagos'), ('Africa/Libreville', '+0100 Africa/Libreville'), ('Africa/Lome', '+0000 Africa/Lome'), ('Africa/Luanda', '+0100 Africa/Luanda'), ('Africa/Lubumbashi', '+0200 Africa/Lubumbashi'), ('Africa/Lusaka', '+0200 Africa/Lusaka')]

pre_sort_tzs = []

for tz in tzs:
    pre_sort_tzs.append([int(tz[1][0:5], 10), (tz)])

sorted_tzs = []

for tz in sorted(pre_sort_tzs):
    sorted_tzs.append(tz[1])

print sorted_tzs

输出:

^{pr2}$

较短版本:

tzs = [...]

pre_sort_tzs = map(lambda x: [int(x[1][0:5], 10), (x)], tzs)
sorted_tzs = map(lambda x: x[1], sorted(pre_sort_tzs))

print sorted_tzs

相关问题 更多 >

    热门问题