在Python中,如何在同一公式中使用列表列表的元素?
我需要在同一个公式中使用列表列表中的元素在Python中,如何在同一公式中使用列表列表的元素?,python,nested-lists,Python,Nested Lists,我需要在同一个公式中使用列表列表中的元素 import math def equate(A): n = len[A] sum = 0 for i in A: sum = sum + ((A[i] * math.log10(A[j]) + (1-A[i] * math.log10(1 - A[j])) loss = -1/n * sum return loss A = [[1, 0.4], [0, 0.5], [0, 0.9], [0,
import math
def equate(A):
n = len[A]
sum = 0
for i in A:
sum = sum + ((A[i] * math.log10(A[j]) + (1-A[i] * math.log10(1 - A[j]))
loss = -1/n * sum
return loss
A = [[1, 0.4], [0, 0.5], [0, 0.9], [0, 0.3], [0, 0.6], [1, 0.1], [1, 0.9], [1, 0.8]]
Answer = equate(A)
print(Answer)
低于误差
File "/home/988659d072a77d5e9b58fa933c5d006f.py", line 7
loss = -1/n * sum
^
SyntaxError: invalid syntax
您缺少一个括号
sum = sum + ((A[i] * math.log10(A[j]) + (1-A[i] * math.log10(1 - A[j])))
# Missing a parenthesis at the end.
请尝试以下代码:
import math
def equate(lst:list):
n = len(lst)
suma = 0
for i, j in lst:
suma = suma + ((i * math.log10(j)) + (1-i * math.log10(1 - j)))
loss = -1/n * suma
return loss
A = [[1, 0.4], [0, 0.5], [0, 0.9], [0, 0.3], [0, 0.6], [1, 0.1], [1, 0.9], [1, 0.8]]
answer = equate(A)
print(answer)
我认为这就是您想要的,尽管很难说,因为A
、I
和j
实际上是非信息变量名
from math import log10
from statistics import mean
def equate_one(i, j):
return i * log10(j) + (1 - i) * log(1 - j)
def equate(A):
return -mean(equate_one(i, j) for i, j in A)
A = [[1, 0.4], [0, 0.5], [0, 0.9], [0, 0.3], [0, 0.6], [1, 0.1], [1, 0.9], [1, 0.8]]
Answer = equate(A)
print(Answer)
- 我认为你的括号不匹配:
与1-I*something
相同1-(I*something)
将尝试索引len[A]
,而不是获取len
的长度A
是一个内置函数,您不应该覆盖它sum
在您的代码中是一个两元素列表,因此您不能执行i
a[i]
- 正如a121所指出的,
没有定义j
- 在语法错误之前,您没有看到一行,而是漏掉了两个右括号。过度使用括号(容易导致混淆)
- 使用标准库!如果需要某一组数字的算术平均值,请使用Python附带的
统计信息
库
sum=sum+上的两个结束括号代码>线性同样,不要使用sum
。Sum是python中的一个保留字@kabooya-sum
没有保留,但您的观点仍然有效-永远不要使用sum
作为标识符(除非您正在对内置的sum
函数进行猴子补丁)。j
没有定义,您的意思是i
?另外,您到底想做什么?不太清楚..我想如果你只编辑括号,代码将包含其他错误。