我在 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/