从循环结果python中获取列表

时间:2019-04-15 16:07:26

标签: python pandas list numpy for-loop

我想从循环结果中获得一个列表

我有此代码


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 个答案:

答案 0 :(得分:3)

您要寻找的是列表理解:

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

答案 1 :(得分:2)

如果使用python 3.6或更高版本,请在列表理解中使用f-string

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

[出]

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

答案 2 :(得分:1)

这是您需要的吗?

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))]

答案 3 :(得分:1)

您需要做的是创建一个空列表,并在每次迭代时附加新文件名。一种方法是:

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)

更pythonic的方式是通过列表理解。为了保持可读性,它类似于:

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