查找文本文件中数据集的最大值和最小值;有趣的拼图

时间:2018-04-28 07:25:08

标签: python

在数据集中,我需要打印整数大小为100的最小数字。 但是,我一直在尝试min(),但这并没有奏效。整个问题说,

  

“写一个Python程序,读取碳排放数据   carbon-emissions.txt并执行以下三个计算,   每个计算一个汇总来自其中的所有年份的数据   超过1亿吨的碳排放量:

     
      
  • 这些年间的二氧化碳排放量最低
  •   
  • 这些年间的二氧化碳排放量最高
  •   
  • 这些年中二氧化碳排放总量
  •   
     

您的计划应输出以百万吨为单位的值   二氧化碳,而不是碳。一吨碳是等价的   到3.67吨二氧化碳,所以你可以乘以3.67吨   执行转换。你可以转换成二氧化碳   在聚合之前或之后“

到目前为止,我所做的是:

for value in open("carbon-emissions.txt"): 
  value_float = float(value)
  if int(value_float) > 100:
    print(value_float)

它将整个数据集转换为float,然后尝试查找大于100的数字,但是这会将所有数据打印到100以上。

我想在我将最大值,最小值和超过100的所有值归为一起之后。一旦我这样做,我会打印:

print("Minimum Co2 emissions:" + int(min_value)*3.67)
print("Maximum Co2 emissions:" + int(max_value)*3.67)
print("Total Co2 emissions:" + int(sum_value)*3.67)

该计划应该如下:

Minimum Co2 emissions: 381.68
Maximum Co2 emissions: 36167.85
Total Co2 emissions: 1467460.51

编辑: max的代码是:

max_sofar = 0
for value in open("carbon-emissions.txt"):
    value_float = float(value)
    max_sofar = max(max_sofar, value_float)

print("Maximum Co2 emissions:", max_sofar*3.67)

然而,我似乎无法找到最低限度。我需要使它大于100,但我需要找到这些数字的最小值。

1 个答案:

答案 0 :(得分:0)

您应该将所有值都列入列表,然后在其上运行minmaxsum

values = []
with open('carbon-emissions.txt') as f:
   for line in f:
      if line.strip(): # skips empty lines
          value = float(line)
          if value > 100:
               values.append(value * 3.67)

print('The minimum value is: {0:.2f}'.format(min(values)))
print('The maximum value is: {0:.2f}'.format(max(values)))
print('The total is: {0:.2f}'.format(sum(values)))