Mam listę ciągów i listę filtrów (które są również ciągi, które należy interpretować jako wyrażeń regularnych). Chcę listę wszystkich elementów na liście ciągów akceptowanych przez co najmniej jeden z filtrów. Idealnie, chciałbym napisać"Niektóre" Lispa w Pythonie?
[s for s in strings if some (lambda f: re.match (f, s), filters)]
gdzie część jest zdefiniowany jako
def some (pred, list):
for x in list:
res = pred (x)
if res:
return res
return False
Czy coś takiego już dostępny w Pythonie, czy istnieje bardziej idiomatycznych sposób to zrobić?
Twoja ocena Python's lambdas jest prawdziwy, z wyjątkiem frakcji 0,9. –
jest na to ładna perspektywa "Jest jak oglądanie zwiastunu filmu, ekscytująca, ale nie do końca prawdziwa." http://rapd.wordpress.com/2007/05/09/lambda-in-python/ - chociaż z perspektywy sekretarzy nie podzielam jego entuzjazmu dla czystego kodu, daj mi funkcjonalność. –