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:사용자 정의 또는 익명 함수 에서 얻 은 값 은 불 값 입 니 다.true 는 함수 가 가 져 온 값 을 유지 하고 false 는 반대 합 니 다.
    iterator:대상 을 교체 할 수 있 습 니 다.
예:
     필터 목록['texttest_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']
     text 문자열 을 포함 하고 꺼 내 거나 반대로 가 져 오기 만 하면 됩 니 다.
s.rfind'text'+1
     Python 3 에서 rfind()는 문자열 이 마지막 으로 나타 난 위 치 를 되 돌려 줍 니 다.일치 하 는 항목 이 없 으 면-1 을 되 돌려 줍 니 다.
     숫자 중 0 은 false 이 고 0 이상 의 정 수 는 모두 true 이기 때문에 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)))

\#Noe 사용자 정의 함수

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))

읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기