我使用Python2.7来查找文本文件中的最高值和最低值。
文本文件的格式很简单,每行有一个整数值。 以下代码从文件中收集数字:
with open(data_file, 'r') as f:
data_list = f.readlines()
然后,我尝试通过以下方法达到最大值和最小值:
max_value = max(data_list)
min_value = min(data_list)
print('Max value: '+ str(max_value) + ' Min value: ' + str(min_value))
我从照片上得到的是: 最大值:8974 最小值:11239
最大值怎么可能小于最小值?我也试过打印整个列表,其中有比上面所述的值高的值,也有比上面所述的值低的值。在文本文件中,也有高于和低于上述值。
我觉得我对python的理解可能有一些根本性的错误,请帮助我找出我的误解。
当您从文件中读取时,列表中将充满字符串。您需要将它们转换为int/float,否则
max/min
将不会返回max/min
数值值。下面的代码将使用list comprehension将data_list
中的每个值转换为整数,然后返回最大值。你可以在事实发生之前这样做,这样你就不必为
min
再次转换它:注意:如果有float,那么应该在列表理解中使用
float
,而不是int
。顺便说一下,这对字符串不起作用的原因是
max
将比较字符串的序号值,从字符串的开头开始。在这种情况下,“8”大于“1”。相关问题 更多 >
编程相关推荐