J'ai une liste de chaînes et une liste de filtres (qui sont aussi des chaînes, à interpréter comme des expressions régulières). Je veux une liste de tous les éléments de ma liste de chaînes acceptés par au moins un des filtres. Idéalement, j'écrire"Quelques" de Lisp en Python?
[s for s in strings if some (lambda f: re.match (f, s), filters)]
où certains est défini comme
def some (pred, list):
for x in list:
res = pred (x)
if res:
return res
return False
Est-ce quelque chose comme ça déjà disponible en Python, ou est-il un moyen plus idiomatiques de le faire?
Votre évaluation Lambdas de Python est vrai, sauf que la fraction est de 0,9. –
heres une belle perspective à ce sujet "Est-ce que c'est comme regarder la bande-annonce d'un film.Excitant, mais pas tout à fait la vraie chose." http://rapd.wordpress.com/2007/05/09/lambda-in-python/ - bien que d'un point de vue de lispers, je ne partage pas son enthousiasme pour le code propre, donnez-moi la fonctionnalité. –