python字符串列表解析

2024-06-01 03:20:58 发布

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

我有一个表示日期的字符串列表:

>>> dates
['14.9.2016',
 '13.9.2016',
 '12.9.2016',
 '11.9.2016',
 '10.9.2016',
 '9.9.2016',
 '8.9.2016',
 '7.9.2016',
 '6.9.2016',
 '5.9.2016']

我需要将padd日和月归零,并且我不能使用标准日历方法,因为我需要处理“人造日期”(例如“29.2.2015”)

以下方法似乎有效:

>>> parsed_dates = []
>>> for l in [d.split('.') for d in dates]:
>>>    parsed_dates.append('.'.join([i.zfill(2) for i in l]))

>>> parsed_dates
['14.09.2016',
 '13.09.2016',
 '12.09.2016',
 '11.09.2016',
 '10.09.2016',
 '09.09.2016',
 '08.09.2016',
 '07.09.2016',
 '06.09.2016',
 '05.09.2016']

使用单一的列表理解是否可能达到相同的结果?或者其他更优雅的方式? 我尝试了以下方法,但找不到一种方法来连接单个列表项以再次形成日期字符串。。。你知道吗

>>> [i.zfill(2) for l in [d.split('.') for d in dates] for i in l]
['14',
 '09',
 '2016',
 '13',
 '09',
 '2016',
 '12',
 '09',
.
.
.

Tags: 方法字符串in列表for标准方式parsed
1条回答
网友
1楼 · 发布于 2024-06-01 03:20:58

当然,只需内联传递给parsed_dates.append()调用的表达式,并用for循环中的l替换d.split('.')

['.'.join([i.zfill(2) for i in d.split('.')]) for d in dates]

演示:

>>> ['.'.join([i.zfill(2) for i in d.split('.')]) for d in dates]
['14.09.2016', '13.09.2016', '12.09.2016', '11.09.2016', '10.09.2016', '09.09.2016', '08.09.2016', '07.09.2016', '06.09.2016', '05.09.2016']

相关问题 更多 >