在Python字典中搜索匹配键

在Python字典中搜索匹配键,python,dictionary,key,Python,Dictionary,Key,我想在python字典中搜索与初始字母序列匹配的键。然而,事情有点复杂,我在困惑中迷失了方向 例如: 我有一个字符串“AbsthGihg”,我想在字典中搜索一个与字符串的最后9个字母完全匹配的键。如果没有找到,我想在另一本字典中搜索与字符串最后8个字母完全匹配的键 我不知道如何将特定数量的字母(这里是“最后的x个字母”)与一个键匹配(或者如何搜索键),因此我希望这里的人可以命名一个函数,使我能够这样做,或者在哪里可以查找它。 因为这是程序要做的第一件事,所以我不能给出任何代码。 我可以用类似x=

我想在python字典中搜索与初始字母序列匹配的键。然而,事情有点复杂,我在困惑中迷失了方向

例如: 我有一个字符串“AbsthGihg”,我想在字典中搜索一个与字符串的最后9个字母完全匹配的键。如果没有找到,我想在另一本字典中搜索与字符串最后8个字母完全匹配的键

我不知道如何将特定数量的字母(这里是“最后的x个字母”)与一个键匹配(或者如何搜索键),因此我希望这里的人可以命名一个函数,使我能够这样做,或者在哪里可以查找它。 因为这是程序要做的第一件事,所以我不能给出任何代码。
我可以用类似
x=string[1://code>的东西来指定“最后9个字母”吗?这将是我唯一知道如何指定用于搜索的字符串的字母。

因为字典是哈希表,所以不能像查找整个键一样只按键的最后一位查找它们。相反,您必须迭代这些键

for key in dictionary.keys():
    if key[-9:] == 'BSTTHGIHG':
        print('I found it!!')
        break
注意
键[-9:][/code>

st = "ABSTTHGIHG"

for x in range(1,len(st)):
    for key in dictionary.keys():
        if st[x:] == key:
            #do something with your key
        print(st[x:])
这就是你可以得到你的stirng最后x个字母的方法

出去


所以你有最后9个字母,8,7…

字典中的一个元素看起来像{'key','value'} 键在字典中是唯一的,而值可能不是唯一的。 假设你的字典看起来像

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
因此,要获取与任何键对应的值,可以通过以下方式进行:

print dict['Name'] # which will display 'Zara'
现在,关于字符串,如果您有val=“ABCDEFGH”,并且希望从索引1到末尾获取子字符串,则可以通过以下方式实现:

val = "ABCDEFGH"
print val[1:] # this will display "BCDEFGH"
print val[2:] # this will display "CDEFGH"
# A negative index accesses elements from the end of the list counting backwards.
print val[-1:] # this will display "H"
print val[-3:] # this will display "FGH" 
因此,对于您的示例,您希望在字典中搜索与字符串的最后9个字母完全匹配的键

st = "ABSTTHGIHG"
print dict[st[-9:]] # this will display the value corresponding to the key "BSTTHGIHG" if it exists

看看这个。希望有帮助:)x=string[-9:]应该足够了。这对你不起作用?如果你需要高效的话,创建一个与最后n个字符匹配的新类型可能是值得的。还有别的吗?或者你准备好接受一个答案了吗?我想所有的答案加起来都能让我做我想做的事。我会尝试一下。它确实是我想要与初始字符串的最后x个字母匹配的整个键。每次我想要运行它时,它都会显示“AttributeError:‘list’对象没有属性‘keys’”。你知道为什么吗?@grindbert也许你有一个字典列表,我会查一下。
st = "ABSTTHGIHG"
print dict[st[-9:]] # this will display the value corresponding to the key "BSTTHGIHG" if it exists