Дано: Список из примерно 100k кортежей. Каждый кортеж состоит из двух элементов, первый id, а второй - строка. Нужно выбрать все id из тех кортежей, где строки содержат определенную подстроку.
tuples = [(id1, 'cheese trees'), (id2, 'freezy breeze'),...]
vals = ['cheese', 'flees']
ids = {i[0] for i in tuples if any(val in i[1] for val in vals)}
output: {id1}
Сейчас я это делаю через comprehension, но должно же быть более быстрое алгоритмическое решение! вот его-то я и ищу.