是否可以使用Python循环不打印值列表,而是创建要在另一个循环中使用的值列表?例如,假设我想在多个时间范围内运行代码循环,并改变日期范围。到目前为止,我已手动输入或复制并粘贴我的日期集合在循环的字典中。但是我可以创建一个函数,在那里我给出第一个时间帧的开始日期,然后告诉它创建额外的7或27个时间帧的值,每次换3个月?此外,我的主代码可能不需要一个日期变量,而是一组变量,每个变量都需要为适当数量的循环生成。
感谢您的帮助。
艾伦
答案 0 :(得分:1)
假设你有
for i in something:
result = f(i)
print result
您可以通过将打印切换到list.append
来列出这些内容results = []
for i in something:
result = f(i)
results.append(result)
在这种简单的情况下,您可以使用列表推导
在一行中完成results = [f(i) for i in something]
您的其余问题需要您显示当前代码以获得有用的答案
答案 1 :(得分:0)
一种可能性就是使用列表理解:
totalValues = 10
# Initial value and generation of the other ones
start = datetime.datetime.now()
dates = [datetime.timedelta(90 * i) + start for i in range(totalValues)]
# Another variable as example
salary = [1000 + i * 0.02 for i in range(totalValues)]
# And you can use both in another *loop*:
savings = [salary[i] * (dates[i] - start).days/90 for i in range(len(salary))]
另一种可能性是使用正常循环:
totalValues = 10
# Initial value
start = datetime.datetime.now()
dates = []
salary = []
for i in range(totalValues):
dates.append(datetime.timedelta(90 * i) + start)
salary.append(1000 + i * 0.02)
savings = []
# And you can use both in another *loop*:
for i in range(totalValues):
savings.append(salary[i] * (dates[i] - start).days/90)