python中列表中浮点数的总和

fhg3lkii  于 2021-09-29  发布在  Java
关注(0)|答案(6)|浏览(816)

我有浮点值 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放置函数时,它返回了正数的和。谢谢你们大家的帮助。

jmo0nnb3

jmo0nnb31#

您还可以使用:

>>> 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))
a5g8bdjr

a5g8bdjr2#

values = [0.0, 0.0, 1.0, 0.0, 0.25, 0.25]

print sum(values)

对我来说很好

wfveoks0

wfveoks03#

要对列表中的浮点值求和,一种简单的方法是使用fsum

import math

l=[0.0, 0.0, 1.0, 0.0, 0.25, 0.25]
math.fsum(l)
a5g8bdjr

a5g8bdjr4#

试试这个:
它增加了一切 pos_score() 然后打印总和。

p = list(swn.senti_synsets(a))
s = [x for x in p[0].pos_score()]
print(sum(s))
7y4bm7vi

7y4bm7vi5#

因为在你的原始代码中, s 不可iterable,因此不能对不可iterable对象使用sum。如果要从中添加每个值 s 在一个列表中,你可以对列表进行求和,得到你想要的结果。
不确定功能 pos_score() 函数可以工作,但也许您可以从该函数创建并返回列表结果?

ia2d9nvy

ia2d9nvy6#

def do(*args):
    mylist_ = [float("{:.2f}".format(num)) for num in args]
    result =(sum(mylist))
    return result

print(do(23.32,45,67,54.27))

结果:

189.59

我希望这会有所帮助。

相关问题