Python中列表中浮点数的总和

2024-04-19 17:40:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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”对象不可Iterable。 怎么做?

解决方案: 奇怪的是,我自己找到了答案,我不知道,但把一个单独的功能的东西工作。`

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时,它返回正数的和。感谢你们所有人的帮助。


Tags: posoutputreturndeflist浮点scoresum
3条回答

试试这个:

它将所有pos_score()添加到列表中,然后打印总和。

p = list(swn.senti_synsets(a))
s = [x for x in p[0].pos_score()]
print(sum(s))
values = [0.0, 0.0, 1.0, 0.0, 0.25, 0.25]

print sum(values)

对我来说很好

您还可以使用:

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

正如其他人所说,sum(l)也会起作用。我不知道你为什么会犯这个错误。


一个可能的原因可能是您的列表是字符串数据类型。将其转换为浮点:

l = map(float, l)

或者

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

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


编辑:您可以将s转换为列表,然后对其求和。

s = p[0].pos_score()
print sum(list(s))

相关问题 更多 >