我想在python词典中搜索与初始字母序列匹配的键。然而,它有点复杂,我在混乱的中途迷失了自己。
实施例: 我有一个字符串“ABSTTHGIHG”,我想在字典中搜索一个与字符串的最后9个字母完全匹配的键。如果没有找到,我想在另一个字典中搜索与该字符串的最后8个字母完全匹配的密钥。
我不知道如何将一个特定数量的字母(此处为“最后的x个字母”)与一个键(或如何搜索一个键)相匹配,所以我希望有人在这里也许可以命名一个功能,使我能够这样做或在哪里可以查找它。
我没有代码可以呈现,因为这将是程序的第一件事。
我可以用x = string[1:]
之类的内容指定“最后9个字母”吗?这将是我唯一的想法,如何指定字符串的哪些字母用于搜索。
答案 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