我有浮点值 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放置函数时,它返回了正数的和。谢谢你们大家的帮助。
6条答案
按热度按时间jmo0nnb31#
您还可以使用:
正如其他人所说,
sum(l)
也会起作用。我不知道你为什么会犯这样的错误。一个可能的原因可能是您的列表是字符串数据类型。将其转换为float,如下所示:
或
然后使用
sum(l)
会正常工作。编辑:您可以转换
s
将其放入列表中,然后求和。a5g8bdjr2#
对我来说很好
wfveoks03#
要对列表中的浮点值求和,一种简单的方法是使用fsum
a5g8bdjr4#
试试这个:
它增加了一切
pos_score()
然后打印总和。7y4bm7vi5#
因为在你的原始代码中,
s
不可iterable,因此不能对不可iterable对象使用sum。如果要从中添加每个值s
在一个列表中,你可以对列表进行求和,得到你想要的结果。不确定功能
pos_score()
函数可以工作,但也许您可以从该函数创建并返回列表结果?ia2d9nvy6#
结果:
我希望这会有所帮助。