У меня есть словарь, в котором в качестве ключа используется 4-кортеж. Мне нужно найти все ключи в словаре, которые частично соответствуют другому кортежу. У меня есть код, который делает это, но он медленный и требует оптимизации.
Вот что мне нужно:
Keys:
(1, 2, 3, 4)
(1, 3, 5, 2)
(2, 4, 8, 7)
(1, 4, 3, 4)
Match:
(1, None, 3, None)
Result:
[(1, 2, 3, 4), (1, 4, 3, 4)]
Текущий код:
def GetTuples(self, keyWords):
tuples = []
for k in self.chain.iterkeys():
match = True
for i in range(self.order):
if keyWords[i] is not None and keyWords[i] != k[i]:
match = False
break
if match is True:
tuples.append(k)
return tuples
Я в основном ищу либо оптимизацию этого метода, либо лучший способ хранения этих данных.