[英]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.