我有以下代码:
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
答案 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))