为什么为什么不断出现错误“ min()arg是一个空序列”?

时间:2019-07-18 09:15:15

标签: python max min

我有以下代码:

test_file = open("test.txt","r")
numbers = test_file.readlines()
numbers = map(int,numbers)
print("Maximum number in list:", max(numbers))
print("Minimum number in list:", min(numbers))
test_file.close()

能不能帮我,因为我不断收到错误消息:min()arg是一个空序列。 (我在文件中写入了数字15、30、4、9、41、76、32,它们位于不同的行中。)

我得到以下输出:

Maximum number in list: 76
Traceback (most recent call last):
  File "\\student-server\users$\16fvarela\Documents\YEAR 
9\CS\Notes\PYTHON\test.py", line 5, in <module>
    print("Minimum number in list:", min(numbers))
ValueError: min() arg is an empty sequence

2 个答案:

答案 0 :(得分:5)

您的numbers

numbers = map(int,numbers)

是一个迭代器(在python 3中;在python 2中您将获得一个列表,所有操作都将按预期工作);当您应用max(numbers)时,您将耗尽迭代器; min不再需要迭代(即min将抱怨一个空序列)。

如果您的数字列表足够简短,则可以通过以下方式解决此问题

numbers = tuple(map(int,numbers))

答案 1 :(得分:0)

您可以将地图转换为列表:

numbers = list(map(int,numbers))