ValueError:max()arg是一个空序列[python 3]

时间:2014-10-03 10:36:24

标签: python python-3.x runtime-error

在计算sum ??

后,列表无效
t = int(input())
while t > 0:
    n,m=map(int,input().split())
    a=map(int,input().split())
    l,o=sum(a),max(a)
    print(l)
    if ((o * n)-l) == m:
        print("YES")
    else:
        print((o * n)-l)
        print("NO")
    t = t-1

2 个答案:

答案 0 :(得分:3)

在Python 3中map()返回一个迭代器(与Python 2不同)。 sum()函数已遍历所有结果,迭代器现在为空:

>>> sample = '1 2 3'
>>> map(int, sample.split())
<map object at 0x10523b2e8>
>>> a = map(int, sample.split())
>>> list(a)
[1, 2, 3]
>>> list(a)
[]

使用list()将结果复制到列表对象,或者更好的是,使用列表推导而不是map()

a = [int(i) for i in input().split()]

答案 1 :(得分:0)

试试这样: -

inputparam='100 2 300'
a = [int(i) for i in inputparam.split()]
maxNo=max(a)
sumno=sum(a)