Вы теряете преимущества создания словаря, если вам придется снова искать все его ключи.Хорошим решением было бы создать еще один словарь, содержащий все ключи, начинающиеся с правильного первого элемента.
my_dict={(1,'a'):'value1', (1,'b'):'value2', (1,'c'):'value3', (2,'a'):'value4',
(2,'b'):'value5',(3,'a'):'value6'}
from collections import defaultdict
mapping = defaultdict(list) #You do not need a defaultdict per se, i just find them more graceful when you do not have a certain key.
for k in my_dict:
mapping[k[0]].append(k)
Отображение теперь выглядит следующим образом:
defaultdict(list,
{1: [(1, 'a'), (1, 'b'), (1, 'c')],
2: [(2, 'a'), (2, 'b')],
3: [(3, 'a')]})
Теперь просто используйте словарьискать ключи, необходимые в вашем оригинальном словаре.
first_element = 1
#Now just use the lookup to do some actions
for key in mapping[first_element]:
value = my_dict[key]
print(value)
#Do something
Вывод:
value1
value2
value3