есть список из цикла результат Python - PullRequest
0 голосов
/ 15 апреля 2019

Я хочу получить список из результата цикла для

У меня есть этот код


dates=pd.date_range(start='2019-03-04', periods=3).strftime("%Y-%m-%d").tolist()
for i in range(0,len(dates)):
    filenames = ['file.'+dates[i]]
    filenames

результат:

['file.2019-03-04']
['file.2019-03-05']
['file.2019-03-06']

пока желаемый результат:


['file.2019-03-04','file.2019-03-05','file.2019-03-06']

Ответы [ 4 ]

3 голосов
/ 15 апреля 2019

Понимание списка - это то, что вы ищете:

dates = pd.date_range(start='2019-03-04', periods=3).strftime("%Y-%m-%d").tolist()
['file.'+ date for date in dates]
2 голосов
/ 15 апреля 2019

Если используется Python 3.6 или более поздняя версия, используйте f-string в понимании списка:

[f'file.{date}' for date in dates]

[out]

['file.2019-03-04', 'file.2019-03-05', 'file.2019-03-06']
1 голос
/ 15 апреля 2019

Что вам нужно сделать, это создать пустой список и на каждой итерации добавлять новое имя файла. Один из способов будет:

dates = pd.date_range(start='2019-03-04', periods=3).strftime("%Y-%m-%d").tolist()
filenames = []
for date in dates:  # just iterate through the records, no indexing needed
    filenames.append('file.' + date)

Более питонический путь - через понимание списка. Чтобы сделать его читаемым, это будет что-то вроде:

dates = pd.date_range(start='2019-03-04', periods=3).strftime("%Y-%m-%d").tolist()
filenames = ["file." + date for date in dates]
1 голос
/ 15 апреля 2019

Это то, что вам нужно?

dates = pd.date_range(start="2019-03-04", periods=3).strftime("%Y-%m-%d").tolist()

["file." + dates[x] for x in range(0, len(dates))]
...