이 글에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!