更改 python 中的列表答案

Changing list answers in python

我一直在尝试使用 python 输入 mysql table,我正在尝试创建一个列表,其中包含从 2016 年 4 月到现在的所有日期,所以我可以将它们单独插入 sql 插入,我进行了搜索但没有找到如何更改每个列表结果的值(如果它是 1 位或 2 位):

dates = ['2016-04-'+str(i+1) for i in range(9,30)] 

我希望 i 在每次 i 是单个数字(即 1、2、3 等)时添加一个 0 当它的两位数保持这种状态时(即 10、11、12 等)

dates = ['2016-04-'+ '{:02d}'.format(i) for i in range(9,30)]

>>> print dates
['2016-04-09', '2016-04-10', '2016-04-11', '2016-04-12', '2016-04-13', '2016-04-14', '2016-04-15', '2016-04-16', '2016-0
4-17', '2016-04-18', '2016-04-19', '2016-04-20', '2016-04-21', '2016-04-22', '2016-04-23', '2016-04-24', '2016-04-25', '
2016-04-26', '2016-04-27', '2016-04-28', '2016-04-29']
>>>

您可以使用 dateutil 模块

from datetime import datetime
from dateutil.rrule import rrule, DAILY
start_date = datetime(2016,04,01)
w=[each.strftime('%Y-%m-%d') for each in list(rrule(freq=DAILY, dtstart=start_date, until=datetime(2016,05,9)))]

使用 C 样式格式,4 月的所有日期:

dates = ['2016-04-%02d'%i for i in range(1,31)]

需要 range(1,31),因为未使用范围中的最后一个值,或者使用 range(30) 并将 1 加到 i。

同样使用.format():

dates = ['2016-04-{:02}'.format(i) for i in range(1,31)]