Конвертировать строки внутри Итератора в список Python - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть даты начала и окончания, и я хочу, чтобы они отображались в виде строковых значений внутри списка.

Пример

datebetween = `["2020-01-01" , "2020-01-02" , "2020-01-03" ... ]

...

Я написал код ниже, чтобы сформировать итератор и получить даты, но как я могу преобразовать эти даты до финала в виде списка:

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

Я хочу, чтобы окончательная переменная была такой: ["2020-02-02" , "2020-02-03" , "2020-02-04" .... ]

Ответы [ 5 ]

3 голосов
/ 03 февраля 2020

Вы можете форматировать даты внутри понимания как:

date_generated = [(start + datetime.timedelta(days=x)).strftime("%Y-%m-%d") 
                  for x in range(0, (end-start).days+1)]
2 голосов
/ 03 февраля 2020

Вот что вы можете сделать для этого, просто добавьте даты в список после преобразования их в строку.

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_list

['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']
1 голос
/ 03 февраля 2020

Вы можете создать окончательный список с именем

  storeFinalDates = []

, а затем в вызове for l oop и добавить к нему даты следующим образом:

  storeFinalDates.append(str(var))
  print(storeFinalDates)

Надеюсь, что это поможет ! :)

0 голосов
/ 03 февраля 2020

Я думал, что добавлю это в список решений.

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']
0 голосов
/ 03 февраля 2020
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)
datesList=[]
for date in date_generated:
    datesList.append(date.strftime("%Y-%m-%d"))
print (datesList)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...