Maison  >  Article  >  développement back-end  >  Explication détaillée du filtre de fonction intégré en python

Explication détaillée du filtre de fonction intégré en python

黄舟
黄舟original
2017-06-04 10:17:141425parcourir

Cet article présente principalement les informations pertinentes de python fonction intégrée filtre Les amis qui en ont besoin peuvent se référer à

filtre de fonction intégré python<.>

class filter(object):
 """
 filter(function or None, iterable) --> filter object
 
 Return an iterator yielding those items of iterable for which function(item)
 is true. If function is None, return the items that are true.
 """

filter(func, iterator)

func : La valeur obtenue dans une fonction personnalisée ou

anonyme est une valeur booléenne , true conservera la fonction. La valeur obtenue, si false, est inversée. itérateur : objet
itérable .

Exemple :

Liste de filtres ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']

Tant qu'elle contient du texte
String et supprimez-le ou annulez-le.

s.rfind'text'+1

rfind() en Python3 renvoie la position de la dernière occurrence de la chaîne, s'il y a il n'y a pas de correspondance. Renvoie -1.

0 en nombres est faux, et
entiers au-dessus de 0 sont vrais, donc il y aura +1 après s.rfind'text', aucun caractère trouvé et -1+1=0.

# Filtre

li = [&#39;text_test_text&#39;, &#39;test_text_1&#39;, &#39;text_test_2&#39;, &#39;3_test_text&#39;, &#39;test_test&#39;]

# 默认保留函数所取到的值
print(list(filter(lambda s: s.rfind(&#39;text&#39;) + 1, li)))
# 取反,下三个例子是一样的
print(list(filter(lambda s: not s.rfind(&#39;text&#39;) + 1, li)))

# Noe Fonction personnalisée

l1 = [&#39;text_test_text&#39;, &#39;test_text_1&#39;, &#39;text_test_2&#39;, &#39;3_test_text&#39;, &#39;test_test&#39;]


def distinguish(l):
 nl = []
 for s in l:
  if s.rfind("text") + 1:
   nl.append(s)
 return nl


print(distinguish(l1))

# Deux fonctions personnalisées d'ordre supérieur

l2 = [&#39;text_test_text&#39;, &#39;test_text_1&#39;, &#39;text_test_2&#39;, &#39;3_test_text&#39;, &#39;test_test&#39;]


def f(s):
 return s.rfind(&#39;text&#39;) + 1


def distinguish(func, array):
 nl = []
 for s in array:
  if func(s):
   nl.append(s)
 return nl


print(distinguish(f, l2))

# Trois fonctions anonymes

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn