Python3 one-liner验证字典值中项的存在

gla*_*hel 2 python dictionary python-3.x

我正在寻找一个可能的单轮返回相当于

'A' in ['A', 'B', 'C']
Run Code Online (Sandbox Code Playgroud)

但在以下情况中:假设我有一个包含列表作为值的字典,例如:

dictionary = {'key1': ['A', 'B', 'C', 'D'], 
              'key2': ['E', 'F'], 
              'key3': ['G', 'H', 'I']}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能得到的最接近的是:

r = {v[0] for k, v in dictionary.items() if 'A' in v}
Run Code Online (Sandbox Code Playgroud)

但是这会返回一组长度为0或1的返回列表元素,以便我检查它的存在.

如果存储在字典值中的任何列表中存在"A",我只想获得True/False.

Kas*_*mvd 7

你需要any()内置功能:

any('A' in v for v in dictionary.values())
Run Code Online (Sandbox Code Playgroud)

any()True一旦遇到真正的命题,它就会自动返回,但如果你想提高性能,你可以使用set对象代替列表来保留其成员资格检查的值是线性的.