我有一个列表[0.2, [1, 1.3], [1, 0.5, 2.1] ...]
,需要将此列表作为参数传递给函数,我应该能够访问被调用函数中的元素,请帮助代码或提示来执行此操作。提前致谢
def func(list):
#calculate opt_p using list
return(opt_p)
def metric(metric, K, N):
opt_p=[]
creating a sequence such that(alpha is my variable name)
alpha_0 = [0.2] has one element
alpha_1 = [1, 1.3] two elements
alpha_2 = [1, 0.5, 2.1] three elements ... upto alpha N suchthat last element has N elements
temp=func(alpha) #HERE IS THE ERROR *Invalid syntax
opt_p.append(func(temp))
def main():
metric(12, 5, 8)
if __name__ == '__main__':
main()
答案 0 :(得分:4)
也许我理解错了,但看起来你忘记了
opt_alpha = [alpha_0, alpha_1, alpha_2]
错误之前的行。 调用func时,opt_alpha未知。
顺便提一下,你错过了i
值。
我的建议是:再次尝试阅读代码。第一个认为正在运行的是if __name__
。然后是主要功能。然后是度量,然后是func。跟随你的变量。如果您不习惯在脑海中进行调试,请用笔,一些纸张并逐步写出所有变量值。你会在一分钟内看到错误在哪里。
编辑:
由于提交:
看看这个例子。
>>> a = [1, 2, 3]
>>> b = [2, 3, 4]
>>> c = [3, 4, 5]
>>> l = [a, b, c]
>>> l
[[1, 2, 3], [2, 3, 4], [3, 4, 5]]
>>> def f(l):
... for element in l:
... print element
... print "--", l[2][1]
...
>>> f(l)
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]
-- 4
>>>
没有理由将列表列表传递给函数。你只是......做到了。
答案 1 :(得分:1)
我认为你只是语法混乱。如果alpha是变量,那么它应该像这样设置
alpha = [[] for x in range(0,3)]
alpha[0] = [list]
alpha[1] = [other list]
...
func(alpha)
并且如上所述,您尚未定义'i',因此它将在函数调用中创建。