我有一个日期列表(日期时间):
>>> 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吗? (那有关系吗?)
答案 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,这是在官方文档中,因为列表表达式得到了更好的优化。