检查字典中的键内的键

时间:2018-10-24 17:33:49

标签: python python-3.x dictionary key-value

有没有一种方法可以检查字典键内部的内部键,如果该元素内部具有key元素,则从字典中返回相应的值。

例如检查键元组的第二个元素中是否有任何"Hello"元素,如果存在,则返回相应的值。

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

4 个答案:

答案 0 :(得分:4)

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

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

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

返回:

'a'

答案 1 :(得分:2)

您可以遍历键元组,检查该元组的第二个值是否等于您想要的值(例如“ hello”),然后返回该键的值。像这样:

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

答案 2 :(得分:2)

获取包含该键的所有键元组的列表;抓取该列表的第一个元素,并将其用作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'

答案 3 :(得分:2)

是;但是,您必须遍历字典中的每个键,直到找到所需的“内键”为止。代码如下:

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

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

您可以使用Python的in关键字检查元组中是否存在元素。这样,您就可以检查自己的key是不是密钥内的“内键” 任何地方

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