有没有一种方法可以检查字典键内部的内部键,如果该元素内部具有key元素,则从字典中返回相应的值。
例如检查键元组的第二个元素中是否有任何"Hello"
元素,如果存在,则返回相应的值。
d = {(1, "Hello"): "a", (2, "Bye"): "b"}
key = "Hello"
# Since "Hello" exist in d's key's element(second position), return "a"
答案 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
作为输出。