python - 如何通过 Python 中的值访问键?
问题描述
banks = {
"National Bank of Canada" : "327",
"Toronto-Dominion Bank" : "302",
"Royal Bank of Canada" : "173",
"Wells Fargo" : "273",
"Goldman Sachs" : "87",
"Morgan Stanley" : "72",
"Canadian Imperial Bank of Commerce" : "83",
"TD Bank" : "108",
"Bank of Montreal" : "67",
"Capital One" : "47",
"FNB Corporation" : "4",
"Laurentian Bank of Canada" : "3",
"Ally Financial" : "12",
"Montreal Trust Company" : "145",
"Canadian Western Bank" : ".97"
}
for value in banks.values():
count += 1
total_mkt_cap += float(value)
total =+ count
if float(value) > float(largest):
largest = value
变量largest
现在是值327
,但我想largest
成为关键,而"National Bank of Canada"
不是值,感谢任何帮助,谢谢
解决方案
考虑到largest
包含最大值,您可以通过遍历字典找到与其关联的键(key, value)
:
for key, value in banks.items():
if value == largest:
desired_key = key
break
print(desired_key)
请记住,它将为您提供与此值关联的第一个键。
替代解决方案
或者,您可以使用以下使用operator.itemgetter
and的逻辑ast.literal_eval
:
import operator
import ast
banks = {key: ast.literal_eval(value) for key, value in banks.items()}
print(max(banks.items(), key=operator.itemgetter(1))[0])
一旦转换为 int 或 float,前面的代码将为您提供最高值的键。
推荐阅读
- c - 共享对象链接和 Fpic 的问题
- bash - 将具有大部分空字段的多个 CSV 行合并到每个时间戳的单行中
- laravel - 将 Laravel Nova 过滤器应用于计算值
- javascript - 更新到最新版本的 react 和 material ui 后在 redux 中编写函数时出错
- python - 获取电子邮件主题的简单方法是什么
- json - 断言一个 Json 对象
- java - 使用 MariaDB (Current_User) 触发 HeidiSQL 中的问题
- javascript - 为什么 popper.js 在 laravel 中不起作用
- java - Java在通配符上限映射中保留泛型类型
- macos - 'gtk/gtk.h' 文件未找到 Mac