我有字典
{('22', '83', '75', '5', '8', '7', '9', '12', '16', '17', '22', '23', '24', '18', '14'): 1,
('1', '2', '83', '5', '8', '75', '9', '12', '16', '17', '18', '14'): 1,
('11', '2', '7', '5', '8', '7', '9', '12', '16', '17', '18', '14'): 1}
Run Code Online (Sandbox Code Playgroud)
它的键是元组.
现在,我需要寻找是否对等元件(83,75)的任何键的存在,也是我需要确保83和75存在于这个顺序给定的键.因此,对于示例字典中的第一个键,这是真的,但不适用于第二个键.
我知道我可以找我的钥匙83和75,但我无法核实他们的订单.
一个简单的for循环就足够了.该index函数将抛出一个ValueError如果任一'83'或'75'找不到.Pythonic的方法是尝试 - 除了块:
my_dict = {('22', '83', '75', '5', '8', '7', '9', '12', '16', '17', '22', '23', '24', '18', '14'): 1,
('1', '2', '83', '5', '8', '75', '9', '12', '16', '17', '18', '14'): 1,
('11', '2', '7', '5', '8', '7', '9', '12', '16', '17', '18', '14'): 1}
keys = []
for key in my_dict:
try:
if key.index('75') - key.index('83') == 1:
keys.append(key)
except ValueError:
pass
Run Code Online (Sandbox Code Playgroud)
如果您想要找到包含75其后的密钥,则83可以使用此版本:
my_dict = {('22', '83', '75', '5', '8', '7', '9', '12', '16', '17', '22', '23', '24', '18', '14'): 1,
('1', '2', '83', '5', '8', '75', '9', '12', '16', '17', '18', '14'): 1,
('11', '2', '7', '5', '8', '7', '9', '12', '16', '17', '18', '14'): 1}
keys = []
for key in my_dict:
try:
if '75' in key[key.index('83'):]:
keys.append(key)
except ValueError:
pass
Run Code Online (Sandbox Code Playgroud)