Вы можете использовать выражение, подобное следующему:
tuple(filter(lambda x: any(filter(lambda f: f(x), func)), data))
Итак,
In [17]: func=(lambda x: x>3,lambda x: x%2==0)
...: data=(1,2,3,4,5,6,7,8,9,10)
...:
...:
In [18]: tuple(filter(lambda x: any(filter(lambda f: f(x), func)), data))
Out[18]: (2, 4, 5, 6, 7, 8, 9, 10)
Также обратите внимание, что ваше выражение поднимает TypeError
, поэтому я не знаю, чтоВы имеете в виду возвращение всего списка.
Вероятно, было бы более читабельным использовать что-то вроде:
In [23]: tuple(
...: x for x in data
...: if any(f(x) for f in func)
...: )
Out[23]: (2, 4, 5, 6, 7, 8, 9, 10)
Или без any
(смешное ограничение)
In [29]: tuple(filter(lambda x: tuple(filter(None, map(lambda f: f(x), func))), data))
Out[29]: (2, 4, 5, 6, 7, 8, 9, 10)