python - 从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 在这里不起作用?
解决方案
原因是您试图找到min
并max
在字符串上。先把它们变成花车。另外,我建议将您的最小值和最大值排除在循环之外。
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()))
推荐阅读
- python - Kivy,ScreenManager 在切换到上一个屏幕时说没有屏幕
- python - 类似于 cumsum 的一系列列之间的区别
- assembly - 了解汇编中的 cmp
- javascript - 单击图像更改(暂停和播放按钮)
- anaconda - Anaconda 中“基础”(最佳实践)的目的是什么?
- java - 防止对 Java / Kotlin 中的类的依赖,但允许扩展
- javascript - 如何修复使用 Javascript 返回 403 但适用于其他语言的 REDCap API 请求
- c# - 如何根据给定设置对对象列表进行多重排序?
- react-native - 排毒 UI 测试 - 在 CI 上运行时测试超时
- ios - 如何使 SwiftUI 视图可滚动?