python - 在字典键中搜索元素

标签 python dictionary

我有字典

{('22', '83', '75', '5', '8', '7', '9', '12', '16', '17', '22', '23', '24', '18', '14'): 1, 
 ('1', '2', '83', '5', '8', '75', '9', '12', '16', '17', '18', '14'): 1, 
 ('11', '2', '7', '5', '8', '7', '9', '12', '16', '17', '18', '14'): 1}

它的键是元组。

现在我需要搜索它的任何键中是否存在一对元素,例如 (83,75) 并且 我还需要确保 8375 以该顺序出现在给定的 key 中。 因此,对于示例字典中的第一个键,这是正确的,但对于第二个键则不然。

我知道我可以找到带有 8375 的 key ,但我无法验证它们的顺序。

最佳答案

一个简单的 for 循环就足够了。如果未找到 '83''75'index 函数将抛出一个 ValueError。执行此操作的 Pythonic 方式是使用 try-except block 。:

my_dict = {('22', '83', '75', '5', '8', '7', '9', '12', '16', '17', '22', '23', '24', '18', '14'): 1, 
           ('1', '2', '83', '5', '8', '75', '9', '12', '16', '17', '18', '14'): 1, 
           ('11', '2', '7', '5', '8', '7', '9', '12', '16', '17', '18', '14'): 1}
keys = []
for key in my_dict:
    try:
        if key.index('75') - key.index('83') == 1:
            keys.append(key)
    except ValueError:
        pass

如果你想在 83 之后找到包含 75 的键,无论它是否接近,你可以使用这个版本:

my_dict = {('22', '83', '75', '5', '8', '7', '9', '12', '16', '17', '22', '23', '24', '18', '14'): 1, 
           ('1', '2', '83', '5', '8', '75', '9', '12', '16', '17', '18', '14'): 1, 
           ('11', '2', '7', '5', '8', '7', '9', '12', '16', '17', '18', '14'): 1}
keys = []
for key in my_dict:
    try:
        if '75' in key[key.index('83'):]:
            keys.append(key)
    except ValueError:
        pass

关于python - 在字典键中搜索元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24168136/

相关文章:

python - 根据指定深度动态回填 Pandas DataFrame

python - 用python读取fortran未格式化的文件

Java Map - 整数值转换为字符串

dictionary - 更新 Kotlin 中特定键的映射值

c# - 使用字典键过滤列表

python - 如何检查特定整数是否在列表中

python - 使用 Python urllib2 的带有 XML 负载的经过身份验证的 HTTP POST

python - Cython:如何在没有 GIL 的情况下进行打印

python - 格式化字典打印输出

python - 在嵌套字典中查找键的所有键和键