MoS*_*CoW 3 python iteration text-files python-2.7
我使用python 2.7来查找文本文件中的最高和最低值.
文本文件的格式简单,每行都有一个Integer值.以下代码从文件中收集数字:
with open(data_file, 'r') as f:
data_list = f.readlines()
Run Code Online (Sandbox Code Playgroud)
然后我尝试达到最大值和最小值:
max_value = max(data_list)
min_value = min(data_list)
print('Max value: '+ str(max_value) + ' Min value: ' + str(min_value))
Run Code Online (Sandbox Code Playgroud)
然后我从印刷品得到的是:最大值:8974最小值:11239
最大值如何大于最小值?我也尝试打印整个列表,并且有比上述更高和更低的值.在文本文件中,还有比上述更高和更低的值.
我觉得我对python的理解可能存在根本性的错误,请帮助我找出我的误解.
Ffi*_*ydd 10
当您从文件中读取时,您的列表将充满字符串.您需要将这些转换为整数/浮点数,否则max/min将不返回max/min 数值.下面的代码将data_list使用列表推导将每个值转换为整数,然后返回最大值.
max_value = max([int(i) for i in data_list])
Run Code Online (Sandbox Code Playgroud)
您可以在事实之前执行此操作,因此您无需再次转换它min:
with open(data_file, 'r') as f:
data_list = [int(i) for i in f.readlines()]
max_value = max(data_list)
min_value = min(data_list)
Run Code Online (Sandbox Code Playgroud)
注意:如果你有浮动,那么你应该使用float而不是int列表理解.
顺便说一下,这对字符串不起作用的原因是,max它将从字符串的开头开始比较字符串的序数值.在这种情况下,'8'大于'1'.
| 归档时间: |
|
| 查看次数: |
6793 次 |
| 最近记录: |