将迭代器中的字符串转换为Python列表
我有一个开始日期和结束日期,我希望它们在列表中显示为字符串值 示例将迭代器中的字符串转换为Python列表,python,string,list,Python,String,List,我有一个开始日期和结束日期,我希望它们在列表中显示为字符串值 示例 datebetween = `["2020-01-01" , "2020-01-02" , "2020-01-03" ... ] 我编写了下面的代码以形成迭代器并获取日期,但如何将这些日期转换为最终as列表: import datetime import pandas as pd start = datetime.datetime.strptime("2020-02-02", "%Y-%m-%d") end = datet
datebetween = `["2020-01-01" , "2020-01-02" , "2020-01-03" ... ]
我编写了下面的代码以形成迭代器并获取日期,但如何将这些日期转换为最终as列表:
import datetime
import pandas as pd
start = datetime.datetime.strptime("2020-02-02", "%Y-%m-%d")
end = datetime.datetime.strptime("2020-03-02", "%Y-%m-%d")
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end-start).days+1)]
# print ("data gen" , date_generated)
for date in date_generated:
var = date.strftime("%Y-%m-%d")
print (var)
显示如下:
2020-02-02
2020-02-03
2020-02-04
2020-02-05
2020-02-06
2020-02-07
2020-02-08
2020-02-09
2020-02-10
2020-02-11
2020-02-12
2020-02-13
2020-02-14
我希望最终的var是这样的:
[“2020-02-02”、“2020-02-03”、“2020-02-04”…]
您可以创建一个名为
storeFinalDates = []
然后在for循环调用中,将日期附加到其中,如下所示:
storeFinalDates.append(str(var))
print(storeFinalDates)
希望有帮助!:) 以下是实现此目的的方法,只需在将日期转换为字符串后将其添加到列表中即可
import datetime
import pandas as pd
start = datetime.datetime.strptime("2020-02-02", "%Y-%m-%d")
end = datetime.datetime.strptime("2020-03-02", "%Y-%m-%d")
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end-start).days+1)]
# print ("data gen" , date_generated)
var_list = list()
for date in date_generated:
var = date.strftime("%Y-%m-%d")
var_list.append(var)
var_列表的输出
['2020-02-02',
'2020-02-03',
'2020-02-04',
'2020-02-05',
'2020-02-06',
'2020-02-07',
'2020-02-08',
'2020-02-09',
'2020-02-10',
'2020-02-11',
'2020-02-12',
'2020-02-13',
'2020-02-14',
'2020-02-15',
'2020-02-16',
'2020-02-17',
'2020-02-18',
'2020-02-19',
'2020-02-20',
'2020-02-21',
'2020-02-22',
'2020-02-23',
'2020-02-24',
'2020-02-25',
'2020-02-26',
'2020-02-27',
'2020-02-28',
'2020-02-29',
'2020-03-01',
'2020-03-02']
您可以按如下方式设置理解中的日期格式:
date_generated = [(start + datetime.timedelta(days=x)).strftime("%Y-%m-%d")
for x in range(0, (end-start).days+1)]
我想我应该把它添加到解决方案列表中
import datetime
import pandas as pd
start = datetime.datetime.strptime("2020-02-02", "%Y-%m-%d")
end = datetime.datetime.strptime("2020-03-02", "%Y-%m-%d")
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end-start).days+1)]
# print ("data gen" , date_generated)
result = []
for date in date_generated:
result.append(str(date).split()[0])
print(result)
输出
['2020-02-02',
'2020-02-03',
'2020-02-04',
'2020-02-05',
'2020-02-06',
'2020-02-07',
'2020-02-08',
'2020-02-09',
'2020-02-10',
'2020-02-11',
'2020-02-12',
'2020-02-13',
'2020-02-14',
'2020-02-15',
'2020-02-16',
'2020-02-17',
'2020-02-18',
'2020-02-19',
'2020-02-20',
'2020-02-21',
'2020-02-22',
'2020-02-23',
'2020-02-24',
'2020-02-25',
'2020-02-26',
'2020-02-27',
'2020-02-28',
'2020-02-29',
'2020-03-01',
'2020-03-02']
如果您希望有另一个列表,则不使用循环,而是说:
[x.strftime(“%Y-%m-%d”)for x in date\u generated]
。如果要将其定义为另一个生成器,请使用括号而不是括号。使用(start+datetime.timedelta(days=x)).strftime(“%Y-%m-%d”)
修补列表comp。是的,我非常接近,这和其他回答有什么不同?如果你想获得信用,就让我们以正确的方式进入,而不仅仅是抄袭paste@pauldx-for循环中的一行代码,我使用了result.append(str(date).split()[0])
,我没有看到使用任何其他解决方案。这是一个不同的答案。我认为,在指责我故意以错误的方式做事以获得信贷之前,你可以分析一下我提出的解决方案以及与其他解决方案的区别。
['2020-02-02',
'2020-02-03',
'2020-02-04',
'2020-02-05',
'2020-02-06',
'2020-02-07',
'2020-02-08',
'2020-02-09',
'2020-02-10',
'2020-02-11',
'2020-02-12',
'2020-02-13',
'2020-02-14',
'2020-02-15',
'2020-02-16',
'2020-02-17',
'2020-02-18',
'2020-02-19',
'2020-02-20',
'2020-02-21',
'2020-02-22',
'2020-02-23',
'2020-02-24',
'2020-02-25',
'2020-02-26',
'2020-02-27',
'2020-02-28',
'2020-02-29',
'2020-03-01',
'2020-03-02']