搜索Python字典以匹配键

时间:2015-06-02 16:23:24

标签: python dictionary key

我想在python词典中搜索与初始字母序列匹配的键。然而,它有点复杂,我在混乱的中途迷失了自己。

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

我不知道如何将一个特定数量的字母(此处为“最后的x个字母”)与一个键(或如何搜索一个键)相匹配,所以我希望有人在这里也许可以命名一个功能,使我能够这样做或在哪里可以查找它。 我没有代码可以呈现,因为这将是程序的第一件事。 我可以用x = string[1:]之类的内容指定“最后9个字母”吗?这将是我唯一的想法,如何指定字符串的哪些字母用于搜索。

3 个答案:

答案 0 :(得分:3)

由于字典是散列表,因此您不能像密钥的整个密钥那样通过密钥的最后一位查找它们。相反,你必须迭代键

for key in dictionary.keys():
    if key[-9:] == 'BSTTHGIHG':
        print('I found it!!')
        break

请注意使用key[-9:]

答案 1 :(得分:1)

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:])

这就是你如何获得你的激情的最后x个字母

BSTTHGIHG
STTHGIHG
TTHGIHG
THGIHG
HGIHG
GIHG
IHG
HG
G

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

答案 2 :(得分:0)

字典中的元素看起来像{'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