我之所以发送此邮件,是因为我坚持一整天试图获取它的代码。
这是python中的程序,它读取带有大量浮点值(超过1亿)的.txt文件,并从中获取最高和最低值。
我遇到很多问题,第一个问题是我无法将字符串转换为浮点来比较值。
而且新代码不会显示这些值。
一些细节:
这是代码:
with open('gmm_data.txt') as f:
array = []
minim = 99999999999999
maxim = -99999999999999
for line in f: # read rest of lines
array.append([float(x) for x in line.split()])
if(array[0] > maxim):
maxim = array[0]
elif(array[0] < minim):
minim = array[0]
print (maxim)
print (minim)
这是一种很好的清洁方法:
def min_and_max(iterable):
iterator = iter(iterable)
# Assumes at least two items in iterator
minim, maxim = sorted((next(iterator), next(iterator)))
for item in iterator:
if item < minim:
minim = item
elif item > maxim:
maxim = item
return (minim, maxim)
with open('gmm_data.txt', 'r') as f:
values = (float(value_str) for line in f for value_str in line.split())
minim, maxim = min_and_max(values)
print(maxim)
print(minim)
记住,float
's'可能是不精确的;decimal.Decimal()
如果您需要数字的准确性,请考虑使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句