格式化逗号分隔python中的日期列表

时间:2012-01-04 05:35:41

标签: python list datetime date map

我有一个日期列表(日期时间):

>>> print str(range)
[datetime.datetime(2011, 12, 15, 0, 0), datetime.datetime(2011, 12, 16, 0, 0), datetime.datetime(2011, 12, 17, 0, 0)]

我想将它们格式化为“%d /%m /%Y”并用逗号分隔它们,即:

  

15/12 / 2011,16 / 12 / 2011,17 / 12/2011

目前我正在使用map在每个日期运行strftime,如下所示:

>>> string = ", ".join(map(lambda x: x.strftime("%d/%m/%Y"), range))
>>> print string

输出:

  

15/12 / 2011,16 / 12 / 2011,17 / 12/2011

Ta dah!

这不是最容易阅读的,但它确实有效。它有效吗?它是pythonic吗? (那有关系吗?)

2 个答案:

答案 0 :(得分:2)

map()被认为已被弃用(尽管有些人会反对)。

", ".join(x.strftime("%d/%m/%Y") for x in daterange)

答案 1 :(得分:0)

为什么不使用列表表达式?

",".join([ date.strftime("%d/%m/%Y") for date in range])

是的,不推荐使用map,这是在官方文档中,因为列表表达式得到了更好的优化。