正在 Python 词典中搜索匹配键
Searching Python dictionary for matching key
我想在 python 词典中搜索与初始字母序列匹配的关键字。不过有点复杂,我迷迷糊糊中途迷路了。
示例:
我有一个字符串 "ABSTTHGIHG",我想在字典中搜索与该字符串的最后 9 个字母完全匹配的键。如果找到 none,我想在另一个字典中搜索与字符串的最后 8 个字母完全匹配的键。
我不知道如何将特定数量的字母(此处为“最后 x 个字母”)与密钥匹配(或如何搜索密钥)所以我希望这里有人可以命名一个使我能够这样做的函数,或者我可以在哪里查找它。
没有我可以展示的代码,因为这是程序要做的第一件事。
我可以用 x = string[1:]
之类的东西指定“最后 9 个字母”吗?那将是我唯一的想法如何指定要用于搜索的字符串中的哪些字母。
由于字典是哈希表,您不能像查找整个键那样仅通过键的最后一位来查找它们。相反,您必须遍历键
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:])
这就是你如何获得你的 stirng 的最后 x 个字母
出来
BSTTHGIHG
STTHGIHG
TTHGIHG
THGIHG
HGIHG
GIHG
IHG
HG
G
所以你有最后 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
我想在 python 词典中搜索与初始字母序列匹配的关键字。不过有点复杂,我迷迷糊糊中途迷路了。
示例: 我有一个字符串 "ABSTTHGIHG",我想在字典中搜索与该字符串的最后 9 个字母完全匹配的键。如果找到 none,我想在另一个字典中搜索与字符串的最后 8 个字母完全匹配的键。
我不知道如何将特定数量的字母(此处为“最后 x 个字母”)与密钥匹配(或如何搜索密钥)所以我希望这里有人可以命名一个使我能够这样做的函数,或者我可以在哪里查找它。
没有我可以展示的代码,因为这是程序要做的第一件事。
我可以用 x = string[1:]
之类的东西指定“最后 9 个字母”吗?那将是我唯一的想法如何指定要用于搜索的字符串中的哪些字母。
由于字典是哈希表,您不能像查找整个键那样仅通过键的最后一位来查找它们。相反,您必须遍历键
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:])
这就是你如何获得你的 stirng 的最后 x 个字母
出来
BSTTHGIHG
STTHGIHG
TTHGIHG
THGIHG
HGIHG
GIHG
IHG
HG
G
所以你有最后 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