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)
它将整个数据集转换为浮点数,然后尝试查找大于 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 ,但我需要找到这些数字中的最小值。
解决方案
你应该把所有的值放到一个列表中,然后运行min
,max
然后sum
就可以了。
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)))
推荐阅读
- kotlin - 以编程方式启动时,aws fargate 任务不起作用
- ruby-on-rails - rails 中 find_by id 描述的意外行为
- android - 使用喷气背包导航两次调用片段
- react-native - undefined 不是 react-native 中的对象(评估 '_route$params.userName')
- javascript - 我必须将表单检查数据方法放在哪里?视图、模型或控制器
- php - 电子商务网站身份验证级别,以便访问网站的安全区域
- python - 如何将井字游戏推广到大于 3x3 的棋盘?
- python - Docker SDK python - 关于容器生成和 cpu_load 的通知
- javascript - Bootstrap 双列表框 POST Selected
- php - FPDF:旋转输出