Вы можете использовать all
с вложенным пониманием:
list_of_tups = [('R', 'S', 'T'), ('A', 'B'), ('L', 'N', 'E'), ('R', 'S', 'T', 'L'), ('R', 'S', 'T', 'L', 'N', 'E')]
needed_strings = ['R', 'S', 'T']
[t for t in list_of_tups if all(c in t for c in needed_strings)]
результат
[('R', 'S', 'T'), ('R', 'S', 'T', 'L'), ('R', 'S', 'T', 'L', 'N', 'E')]
До тех пор, пока списки содержат хешируемые элементы, альтернатива, которая может быть немного проще для чтения, - сделать needed_strings
a set
. Тогда вы можете использовать issubset()
list_of_tups = [('R', 'S', 'T'), ('A', 'B'), ('L', 'N', 'E'), ('R', 'S', 'T', 'L'), ('R', 'S', 'T', 'L', 'N', 'E')]
needed_strings = set(['R', 'S', 'T'])
[t for t in list_of_tups if needed_strings.issubset(t)]