我在 s 有浮点值:

p = list(swn.senti_synsets(a))
s = p[0].pos_score()
print(s)

# Output
0.0
0.0
1.0
0.0
0.25
0.25

然后我试了一下,print(sum(s))这给出了错误“ float ”对象不是可迭代的。
这该怎么做 ?

解决方案:
奇怪的是我自己找到了答案,我不知道,但是把一个单独的函数的东西放在一边。 `
for x in token:
sum_pos=sum_pos+posCheck(x)
sum_neg=sum_neg+negCheck(x)
def posCheck(a):
p=list(swn.senti_synsets(a))
s = p[0].pos_score() return(s)`

def negCheck(a): p=list(swn.senti_synsets(a)) s = p[0].neg_score() return(s)

我无法总结列表,但是当我将函数放入 returntype 时,它​​返回了正数的总和。感谢大家的帮助。

最佳答案

您还可以使用:

>>> l=[0.0, 0.0, 1.0, 0.0, 0.25, 0.25]
>>> sum(map(float,l))
1.5

正如其他人所说,sum(l) 也可以工作。我不知道你为什么会出错。

一种可能的原因可能是您的列表是字符串数据类型。将其转换为 float 为:
l = map(float, l)

或者
l = [float(i) for i in l]

然后使用 sum(l) 会正常工作。

编辑:您可以将 s 转换为列表,然后将其求和。
s = p[0].pos_score()
print sum(list(s))

关于python - Python中列表中浮点数的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31187194/

10-14 19:19
查看更多