检查字典中键内的键

Checking the keys inside of the keys in dictionary

有没有办法检查字典键内部的内部键,如果元素内部有键元素,return从字典中获取相应的值。

例如检查键元组的第二个元素中是否有"Hello"的元素,如果存在,则return对应的值。

d = {(1, "Hello"): "a", (2, "Bye"): "b"}
key = "Hello"
# Since "Hello" exist in d's key's element(second position), return "a"

您可以遍历键元组,检查元组的第二个值是否等于您想要的值(例如 "hello"),如果是,则 return 该键的值。像这样:

d = {(1, "Hello"): "a", (2, "Bye"): "b"}
key = "Hello"
for k in d:
    if k[1] == key:
        return d[k]

获取包含key的所有key元组列表;获取该列表的第一个元素,并将其用作 d.

的索引
>>> d = {(1, "Hello"): "a", (2, "Bye"): "b"}
>>> key = "Hello"
>>> d[[key_tuple for key_tuple in d if key in key_tuple][0]]
'a'

是;但是,您必须遍历字典中的每个键,直到找到您要查找的 "inner key" 。代码如下所示:

d = {(1, "Hello"): "a", (2, "Bye"): "b"}
key = "Hello"

for k in d.keys():
    if key in k:
        print(d[k])

您可以使用 Python 的 in 关键字检查元素是否存在于元组中。这允许您检查您的 key 是否是密钥中的 "inner key" anywhere

此代码将打印 a 作为输出。

使用下一个(一旦找到匹配项就会 return)。 通过将默认 return 设置为 None,我们确保不会出现 StopIteration 错误,我们现在可以继续使用字典 get 函数。

请注意,在大多数情况下,这比完整查找更快。

key = 'Hello'
d.get(next((t for t in d if key in t), None))

Returns:

'a'