text = 'foo ,,bar ,baz,'
(나는 input
로 text
보다는 input
을 사용하여 내장 명령의 이름입니다. 그림자 내장 명령을 피하십시오.) 모든
먼저, len(x.strip()) > 0
이 x.strip()
로 간단하게 작성 (더 효율적으로) 할 수있다. 당신이 정말로 원한다면
tags = [x for x in (x.strip() for x in text.split(',')) if x]
, 당신도 할 수 : 당신이 정말 당신이 한 번만 스트립을 할 수 싶었지만, 더 빨리 될 거라고 경우 잘 모르겠어요 경우
tags = [x.strip() for x in text.split(',') if x.strip()]
>>> from timeit import timeit
>>> timeit(lambda: [x.strip() for x in text.split(',') if x.strip()])
1.9443869590759277
>>> timeit(lambda: [x for x in (x.strip() for x in text.split(',')) if x])
2.1135239601135254
>>> timeit(lambda: filter(bool, map(lambda x: x.strip(), text.split(','))))
2.52907395362854
,691 :
tags = filter(bool, map(lambda x: x.strip(), text.split(',')))
성능 수치 ... 기능적으로 그것을 할
알다시피, 첫 번째가 가장 빠릅니다.
를 반환합니다. 스트립()이 그 결과를 캐시한다면, 나는 생각하지 않는다.) 아니면 중간 변수가 필요하다는 것을 알 필요가있다. –