繁体   English   中英

要平均,不能因为字符串而加数字。 整数不起作用。 无知

[英]Want average, can't add number because of strings. Int doesn't work. Clueless

input = "5-9-7-1-7-8-3-2-4-8-7-9"  
word = input.split("-")  
average = sum(int(word)) / len(int(word))
print(average)

所以split命令给出了一个字符串列表,而我不能像我希望的那样对字符串求和(以数字的形式求平均值)。 我在SO上搜索答案,每个人都说要使它们成为整数,但是没有一个答案有效。

我收到的错误消息是:“ TypeError:int()参数必须是字符串,类似字节的对象或数字,而不是'list'”

例如,另一个主题中的某人建议使用newvar = [int(s) for s in newvar] ,但我似乎无法使其工作。

提前致谢!

对那些不满的人:告诉我为什么要改善它? 我知道网站上总是有一些令人讨厌的新手,这些新手一直在犯同样的愚蠢错误,但是我还不知道这里的社交代码。

首先, split将为您提供字符串列表。

所以你必须将每个元素变成一个数字

该建议是corect,但您需要使其适应您的代码。

input = "5-9-7-1-7-8-3-2-4-8-7-9"  
words = input.split("-")  
average = sum([int(s) for s in words]) / len(words)  
print(average)

您应该将每个项目本身变成一个数字。 您可以使用列表理解。

input = "1-3-5-7-2-4-6-8"
strings = input.split("-")                # strings = ["1", "3", "5", "7", "2", "4", "6", "8"]
numbers = [int(item) for item in strings] # numbers = [ 1,   3,   5,   7,   2,   4,   6,   8]
average = sum(numbers) / len(numbers)

您可以尝试以下方法:

input = "5-9-7-1-7-8-3-2-4-8-7-9"  
average = sum(map(int, input.split("-")))/float(len(input.split("-")))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM