在Python字典中搜索匹配键

2024-09-24 20:25:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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


Tags: 函数字符串代码程序示例数量string字典
3条回答

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

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

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

注意key[-9:]的用法

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。。。。

相关问题 更多 >