我想从循环结果中获得一个列表
我有此代码
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']
答案 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]