在Python中格式化以逗号分隔的日期列表

0 投票
2 回答
1958 浏览
提问于 2025-04-17 09:30

我有一串日期(时间):

>>> 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这个方法来对每个日期进行处理,像这样:

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

这样输出的结果是:

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

太好了!

虽然看起来不是特别容易理解,但它能正常工作。这样做效率高吗?这样写算不算是Python的好习惯?(这重要吗?)

2 个回答

0

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

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

没错,map已经不推荐使用了,这在官方文档里有说明,因为列表表达式的优化效果更好。

2

map()这个函数现在被认为不再推荐使用(虽然也有人会持不同意见)。

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

撰写回答