是否可以使用Python循环不打印值列表,而是创建要在另一个循环中使用的值列表?例如,假设我想通过多个时间框架运行一个代码循环,并移动日期范围。到目前为止,我已经手动输入或复制并将我的日期集粘贴到循环的字典中。但是,我可以创建一个函数,让我给出第一个时间框架的开始日期,然后告诉它创建另外7或27个时间框架的值,每次移动3个月?此外,我的主代码可能不需要一个日期变量,而是一组变量,每个变量都需要为适当数量的循环生成。Python循环 - 为循环生成循环值
感谢您的协助。
艾伦
是否可以使用Python循环不打印值列表,而是创建要在另一个循环中使用的值列表?例如,假设我想通过多个时间框架运行一个代码循环,并移动日期范围。到目前为止,我已经手动输入或复制并将我的日期集粘贴到循环的字典中。但是,我可以创建一个函数,让我给出第一个时间框架的开始日期,然后告诉它创建另外7或27个时间框架的值,每次移动3个月?此外,我的主代码可能不需要一个日期变量,而是一组变量,每个变量都需要为适当数量的循环生成。Python循环 - 为循环生成循环值
感谢您的协助。
艾伦
假设你有
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]
你的问题的其余部分需要你,以显示你当前的代码来获得一个有用的答案
一种可能性是用列表解析做到这一点:
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)
是的,这是可能的。现在你的*真实*问题是什么? – Bakuriu
你被低估的原因是这个问题含糊不清。请给出示例代码或更好,然后将问题简化为非常简单的事情。有关Python循环的介绍,请参阅http://docs.python.org/3/tutorial/controlflow.html#for-statements – wkschwartz