如何利用python中变量的强大功能
这是我的密码如何利用python中变量的强大功能,python,python-2.7,Python,Python 2.7,这是我的密码 LUT = [[1,0,0,1,1],[1,1,1,1,1]] N = len(LUT[0]) P = 0.1 x = [((P)**h)*((1-P)**(N-h)) for h in range (0, N+1)] x是我想要在h的每个值处存储该方程的值的列表,其中h从0开始到N。当我运行这个脚本时,我得到的“int”对象是不可编辑的。我做错了什么 这是堆栈跟踪 in prb_table(LUT, P) 152 def prb_table(LUT, P):
LUT = [[1,0,0,1,1],[1,1,1,1,1]]
N = len(LUT[0])
P = 0.1
x = [((P)**h)*((1-P)**(N-h)) for h in range (0, N+1)]
x是我想要在h
的每个值处存储该方程的值的列表,其中h
从0
开始到N
。当我运行这个脚本时,我得到的“int”对象是不可编辑的
。我做错了什么
这是堆栈跟踪
in prb_table(LUT, P)
152 def prb_table(LUT, P):
153 N=len(list(LUT[0]))
--> 154 x = [((P)**h)*((1-P)**(N-h)) for h in range (0, N+1)]
155 return x
TypeError: 'int' object is not iterable
如果
LUT
不是iterables列表,则应执行以下操作:
N = len(LUT)
非len(LUT[0])
。确保放入len
中的是一个iterable
,就像您想要的列表、元组、集合一样
N = len(LUT)
…或者你需要弄清楚你想得到的长度。
len()的参数需要是某种序列,如列表或元组。
LUT[0]似乎是一个单独的元素,而不是一个列表,如果它给了您这个错误。您提供的代码是正确的。错误在调用此函数之前的其他地方。特别是LUT[0]
不是您所给出的
不知何故,LUT[0]
是一个整数,而不是一个列表,因此在调用函数的代码段中的某个地方,在进入该函数之前存在一个bug。它对我来说工作正常。当N=5和P=7时,结果x是[-77769072,-1058412348,-1440616807]如果LUT是一个整数列表,那么LUT[0]
将是一个整数,那么len(LUT[0])
将没有意义。LUT是一个列表列表,所以我想要的是内部列表的长度,而不是外部列表的长度。@motahaLUT
中有什么值,您能在这里打印吗?请在您打印之前先打印LUT[0]
。很明显,计算机所认为的LUTLUT
并不是你所知道的。几乎可以肯定,在调用prb_表
之前会发生错误。