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