Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将迭代器中的字符串转换为Python列表_Python_String_List - Fatal编程技术网

将迭代器中的字符串转换为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']