2016-08-19 3 views
2

У меня есть список строк, представляющая дата:список питон строк разбора

>>> 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', 
. 
. 
. 

ответ

7

Конечно, просто встраивать выражение вы передаете к parsed_dates.append() вызову, с l замещено d.split('.') из ваш for цикл:

['.'.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'] 
+0

просто! большое спасибо! – kekert

Смежные вопросы