c = input("Enter a list of number seperate by ','\n")
d = map(int, c.split(","))
print(sum(d)/len(d))
解释器说类型映射的对象没有长度。我怎么知道用户输入了多少个号?
答案 0 :(得分:2)
您正在使用 python3 ,其中map
不再返回list
,而是map
个对象。
使用list(map(...
答案 1 :(得分:1)
您需要将map
对象转换为list
,因为map
就像一个生成器,只在需要时产生值
c = input("Enter a list of number seperate by ','\n")
d = list(map(int, c.split(",")))
print(sum(d)/len(d))
或者,可能更具可读性,使用列表理解:
c = input("Enter a list of number seperate by ','\n")
d = [int(x) for x in c.split(",")]
print(sum(d)/len(d))
或者,您可以稍微重新构建代码,因为str.split()
确实为您提供了一个列表:
c = input("Enter a list of number seperate by ','\n").split(',') # <-- split here
d = map(int, c)
print(sum(d)/len(c)) # <-- len(c) instead of len(d)