>  기사  >  백엔드 개발  >  Python에 내장된 함수 필터에 대한 자세한 설명

Python에 내장된 함수 필터에 대한 자세한 설명

黄舟
黄舟원래의
2017-06-04 10:17:141381검색

이 글에서는 python 관련 정보를 주로 소개합니다. 내장 함수 filter가 필요한 친구들은

python 내장 함수 filter

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를 참고하세요. : custom 또는 익명 함수에서 얻은 값은 부울 값입니다. true는 함수에서 얻은 값을 유지하고 false는 이를 반전합니다.
반복자: 반복 가능한 객체 .

예:

필터 목록 ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']
text 문자열이 포함된 한 제거하거나 부정합니다.

s.rfind'text'+1

Python3의 rfind()는 문자열이 마지막으로 나타나는 위치를 반환하거나 일치하는 항목이 없으면 -1을 반환합니다.
숫자의 0은 거짓이고 0 위의 정수 는 모두 참이므로 s.rfind'text' 뒤에 +1이 있고 문자가 발견되지 않으며 -1+1=0입니다.

# Filter

li = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']

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

# 아니요 사용자 정의 함수

l1 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']


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


print(distinguish(l1))

# 두 가지 사용자 정의 고차 함수

l2 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']


def f(s):
 return s.rfind('text') + 1


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


print(distinguish(f, l2))

# 세 가지 익명 함수

l3 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']


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

print(distinguish(lambda s: s.rfind('text') + 1, l3))

위 내용은 Python에 내장된 함수 필터에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.