Python의 지도 기능은 문자 변환 및 문자 순회 섹션 모두에서 매우 유용합니다. 이제 다시 어떤 놀라움을 가져다 줄까요? 지도가 훌륭하고 앞으로 더 많이 가지고 놀아야 한다고 말하려는 겁니까?
구체적인 예
하위 디렉터리(하하)를 포함하여 디렉터리를 탐색하고 접미사 rmvb, avi, pmp가 있는 모든 파일을 찾아야 합니다. (맙소사?! 뭐하는 거야? 이건 내 사생활이야~~)
코드는 다음과 같다.
import os def anyTrue(predicate, sequence): return True in map(predicate, sequence) def filterFiles(folder, exts): for fileName in os.listdir(folder): if os.path.isdir(folder + '/' + fileName): filterFiles(folder + '/' + fileName, exts) elif anyTrue(fileName.endswith, exts): print fileName exts = ['.rmvb', '.avi', '.pmp'] filterFiles('/media/Personal/Movie', exts)
출력 결과
뭐가 좋은지 보자.
[66影视www.66ys.cn] 로스트 시즌 4 04.rmvb
[로스트 시즌 4].Lost.S04E00.rmvb
[로스트 시즌 4][에피소드 02 ][중국어 자막]. rmvb
"로스트 시즌 4" 05화 [중국어 자막].rmvb
"로스트 시즌 4" 06화 [중국어 자막].rmvb
"로스트" 로스트 시즌 4 07화 [중국어 자막].rmvb
갓센드 시즌 2 01.rmvb
갓센드 시즌 2 02.rmvb
갓센드 시즌 2 03.rmvb
갓센드 시즌 2 시즌 04.rmvb
갓센드 시즌 2 05.rmvb
영화 and Television Empire (bbs.cnxp.com).Beautiful Mind.A.Beautiful.Mind.2001.CD1.rmvb
(...너무 많아요 아, 다 출력하지 마세요~~)
확장
CookBook 책에서는 문자열 필터링을 구현하기 위해 itertools.imap이 제공됩니다. imap과 map의 차이점은 imap은 반복 객체를 반환하고 map은 목록 객체를 반환한다는 것입니다. 코드는 다음과 같습니다:
import itertools def anyTrue(predicate, sequence): return True in itertools.imap(predicate, sequence) def endsWith(s, *endings): return anyTrue(s.endswith, endings) imap 等价于: def imap(function, *iterables): iterables = map(iter, iterables) while True: args = [i.next() for i in iterables] if function is None: yield tuple(args) else: yield function(*args)
위 내용은 문자열 필터링을 위한 Python 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!