![](/img/trans.png)
[英]how do i store all loop variables in dictionary of python to use in django
[英]How do I use a for loop to store function output in separate variables?
假设我具有以下功能:
def function3(start, end):
"""Read MO information."""
config_found = False
var = []
for line in v['molecular orbital primitive coefficients']:
if line.strip() == end:
config_found = False
elif config_found:
i = line.rstrip()
var.append(i)
elif line.strip() == start:
config_found = True
var1 = [elem.strip() for elem in var]
var2 = var1[1:-1]
var3 = np.array([line.split() for line in var2])
var3 = np.asarray([list(map(float, item)) for item in var3])
return var3
并假设我将其输出存储在这样的变量中:
monumber1=function3('1','2')
monumber2=function3('2','3')
monumber3=function3('3','4')
等等
有没有一种方法可以让我多次执行此函数,并将输出存储在一定数量的变量中,而无需每次都手动设置变量名和函数参数? 也许使用for循环? 这是我的尝试,但我正在努力使其发挥作用:
for i in xrange(70):
monumber[x] = function3([i],[i+1])
谢谢!
问题是您使用方括号。 这是应该起作用的代码:
monumber = [] # make it an empty list
for i in xrange(70):
monumber.append(function3(str(i),str(i+1))) # you had string integers, so cast
对于更Pythonic的单行代码,您可以使用列表推导:
monumber = [function3(str(i),str(i+1)) for i in xrange(70)]
现在已经创建了monumber
变量,我可以使用语法monumber[i]
访问任何给定索引i
的元素。 一些例子:
first = monumber[0] # gets the first element of monumber
last = monumber[-1] # gets the last index of monumber
for i in xrange(10,20): # starts at i = 10 and ends at i = 19
print(monumber[i]) # print the i-th element of monumber
你差不多了。 除了您也应该在左侧使用i
:
monumber[i] = function3([i],[i+1])
现在,这是基本思想,但是仅当monumber
已经是具有足够元素的列表时,该代码才起作用,否则将发生IndexError
。
无需预先创建列表并用占位符填充列表,我们可以向其动态添加新值:
monumber = []
for i in xrange(70):
monumber.append(function3([i],[i+1]))
另一个问题是,您似乎在混淆函数所使用的不同类型的参数。 在函数主体中,看起来start
和end
都是字符串,但是在您的代码中,您给出的列表各有一个整数 。 在不更改功能的情况下,您可以执行以下操作:
monumber = []
for i in xrange(70):
monumber.append(function3(str(i),str(i+1)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.