我正在尝试创建一个占用一串数字并输出最大值和最小值的函数。这是我的代码
def high_and_low(numbers):
numbers = map(int, numbers.split())
max_n = max(numbers)
print(max_n)
min_n = min(numbers)
return(max_n, min_n)
但是我收到以下错误:ValueError:min()arg是一个空序列。所以我认为它没有读取负值,但我不知道为什么......
答案 0 :(得分:1)
我假设您正在使用Python 3.x,其中map()
被更改为返回生成器而不是Python 2.x中的显式结果列表。在此生成器上调用max()
会使其耗尽,不会让min()
的元素迭代。
一种解决方案是将此生成器转换为列表,可能numbers = list(numbers)
作为函数的第二行。作为列表,您可以根据需要多次迭代它。