从字典中获取存在的第一个键的值

And*_*Guy 6 python lookup dictionary

TL; DR

是否有Python字典方法或简单表达式返回字典中存在的第一个键(来自可能键列表)的值?

细节

假设我有一个包含许多键值对的Python字典.任何特定密钥的存在都不能保证.

d = {'A':1, 'B':2, 'D':4}
Run Code Online (Sandbox Code Playgroud)

如果我想获取给定键的值,并返回一些其他默认值(例如None)如果该键不存在,我只需:

my_value = d.get('C', None) # Returns None
Run Code Online (Sandbox Code Playgroud)

但是如果我想在默认为最终默认值之前检查一些可能的键呢?一种方法是:

my_value = d.get('C', d.get('E', d.get('B', None))) # Returns 2
Run Code Online (Sandbox Code Playgroud)

但随着备用键数量的增加,这会变得相当复杂.

是否存在针对此方案的Python函数?我想象的是:

d.get_from_first_key_that_exists(('C', 'E', 'B'), None) # Should return 2
Run Code Online (Sandbox Code Playgroud)

如果不存在这样的方法,是否有一个在这种情况下常用的简单表达式?

wim*_*wim 5

使用一个普通的老式 for 循环,流量控制最清晰:

for k in 'CEB':
    try:
        v = d[k]
    except KeyError:
        pass
    else:
        break
else:
    v = None
Run Code Online (Sandbox Code Playgroud)

如果你想单行它,可以使用类似理解的语法:

v = next((d[k] for k in 'CEB' if k in d), None)
Run Code Online (Sandbox Code Playgroud)