首页 > 解决方案 > 从python中的字典中提取最大值和最小值

问题描述

我有以下代码:

content = {}

f = open("input.txt", "r")
for line in f:
    key, value = line.split()
    content[key] = value
    price_values = content.values()
    max_price = max(price_values)
    min_price = min(price_values)
print(content)

我的输入文件是:

A31 149.99
B31 49.99
A41 179.99
F31 169.99
A35 179.99
A44 169.99

任何想法为什么 min max 在这里不起作用?

标签: pythondictionarymaxmin

解决方案


原因是您试图找到minmax在字符串上。先把它们变成花车。另外,我建议将您的最小值和最大值排除在循环之外。

content = {}
f = open("test.txt", "r")
for line in f:
    key, value = line.split()
    content[key] = float(value)
    price_values = content.values()
max_price = max(price_values)
min_price = min(price_values)
print(max_price,min_price)

输出

{'A31': 149.99, 'B31': 49.99, 'A41': 179.99, 'F31': 169.99, 'A35': 179.99, 'A44': 169.99}
179.99 49.99

这是您的代码的缩短版本。请注意,无论如何它都不会加速您的代码。事实上,如果我错了,请纠正我,但它可能也会减慢你的代码。我只是发布它,因为它很好看。

print(max({line.split()[0]:float(line.split()[1]) for line in open("test.txt", "r")}.values()),min({line.split()[0]:float(line.split()[1]) for line in open("test.txt", "r")}.values()))

推荐阅读