在Python中更改len()函数
之前,在我的代码中,我有一个向量:在Python中更改len()函数,python,python-2.7,Python,Python 2.7,之前,在我的代码中,我有一个向量: x = [ [0.72,0.82], [0.91,-0.69], [0.03,0.93], [0.12,0.25], [0.96,0.47], [0.8,-0.75] ] 对于,有一个正确的: for k in range(1,10): for i in range(0,len(x)): sum = 0 for j in range(0,len(x[i])): sum += x[i][j]
x = [
[0.72,0.82],
[0.91,-0.69],
[0.03,0.93],
[0.12,0.25],
[0.96,0.47],
[0.8,-0.75]
]
对于,有一个正确的:
for k in range(1,10):
for i in range(0,len(x)):
sum = 0
for j in range(0,len(x[i])):
sum += x[i][j] * w[j]
我必须改变向量:
x = [
[0.72,0.82,-1],
[0.91,-0.69,-1],
[0.03,0.93,-1],
[0.12,0.25,-1],
[0.96,0.47,-1],
[0.8,-0.75,-1]
]
从这个意义上说,我意识到我需要对我的len(x[I])进行修改,以便之前的结果与现在相同,我尝试len(x[0][1]),但它不起作用,我能做什么呢?然后让j从0变为1。(或者如果你愿意,“len(x[i])-1”)
具体是什么“不起作用”?为什么代码甚至需要更改?为什么需要更改
len()
?range(len())
的全部要点是,它根据实际长度提供了一个动态范围。如果要将其缩短一个元素,range(len(something)-1)
为什么不直接在行和值上循环?这里不需要使用索引。对于w[j]
值,使用zip()
将x
中的行与w
中的行配对,对于x:,total=sum(col*wj表示zip(row,w))
。
for k in range(1,10):
for i in range(0,len(x)):
sum = 0
for j in range(2):
sum += x[i][j] * w[j]