如何通过 Python 中的值访问键?

How to access a key through its value in 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.itemgetterast.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 后为您提供最大值的键。

我会试试下面的内容。

banks = {
    "National Bank of Canada" : "327",
    "Toronto-Dominion Bank" : "302", 
}
#don't worry about this line. It just gets the largest value.
largest = str(max(map(int,banks.values())))
for bankName,id in banks.items():  # for name, age in dictionary.iteritems():  (for Python 2.x)
    if id == largest:
        largest = bankName
print(largest)

输出

National Bank of Canada