Python-목록 이해에서 함수와 필터를 적용하는 다른 방법이 있습니까?

조나단 바나 스코

이것은 수년간 나를 괴롭 혔습니다.

내가 단어 목록을 가지고 있다면 :

words = [ 'one', 'two', 'three', '', ' four', 'five ', 'six', \
         'seven', 'eight ', ' nine', 'ten', '']

초경량이지만이 목록 이해력을 작성하는 것이 여전히 이상합니다.

cleaned = [ i.strip() for i in words if i.strip() ]

나는 strip ()을 두 번 적용하는 것을 좋아하지 않습니다. 어리석은 것 같습니다.

다음과 같이 약간 / 무시할 정도로 빠릅니다.

_words = [ w.strip() for w in words ]
cleaned = [ w for w in _words if w ]

또한 다음과 같습니다.

cleaned = [ i for i in [ w.strip() for w in words ] if i ]

이것을 작성하는 다른 방법이 있는지 궁금합니다.

저는 중첩 된 루프 형태의 목록 이해에 관심이 많았지 만 ( 얕은 중첩 된 목록을 평면화하기위한 Idiom : 어떻게 작동합니까? )를 참조했지만 아무것도 알아낼 수 없었습니다.

최신 정보

나는 github에 벤치 마크를 올려 원래의 3 가지 접근 방식과 아래에 공유 된 접근 방식을 요약했습니다.

가장 빠른 것은 @Martijn Pieters입니다 filter(). 내부 목록을 생성기 표현식으로 변환하는 것은 속도에 거의 영향을 미치지 않지만 메모리 관리에 더 좋습니다 (python의 문서에 따르면).

관련된 모든 속도 차이는 예상대로 무시할 수 있으며 공유 할 가치가 없습니다.

Martijn Pieters

생성기 표현식 :

cleaned = [i for i in (word.strip() for word in words) if i]

filter()사용 map():

cleaned = filter(None, map(str.strip, words))

후자는 Python 3에서 생성기를 생성합니다. list()그것에 적용 하거나 map()목록 이해력과 결합 하십시오.

cleaned = [i for i in map(str.strip, words) if i]

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 목록의 변수로 중첩 목록에 다른 함수를 적용하는 방법이 있습니까?

분류에서Dev

이 목록의 변수로 중첩 목록에 다른 함수를 적용하는 방법이 있습니까?

분류에서Dev

함수를 적용하는 방법은 python-pandas로 데이터 프레임의 목록에있는 요소를 테스트 할 수 있습니까?

분류에서Dev

목록에 Python의 다른 목록이 포함되어 있는지 어떻게 알 수 있습니까?

분류에서Dev

Python의 수퍼 클래스와 다른 메서드 서명을 사용하여 하위 클래스를 구현하는 적절한 방법이 있습니까?

분류에서Dev

Python : 각 목록 요소를 다른 목록의 특정 요소와 곱하는 목록 이해 방법

분류에서Dev

한 목록의 모든 항목이 다른 목록에 포함되어 있는지 Python에서 어떻게 쉽게 확인할 수 있습니까?

분류에서Dev

벡터 목록을 포함하는 데이터 프레임이 목록에없는 경우 어떻게 다른 길이를 가질 수 있습니까?

분류에서Dev

r에서 둘 이상의 목록 목록에 함수를 적용하는 방법은 무엇입니까?

분류에서Dev

Python에서 return을 사용하지 않고 다른 파일의 함수에서 변수를 가져올 수있는 방법이 있습니까?

분류에서Dev

두 세트의 목록에 count 함수를 적용 할 수있는 더 좋은 방법이 있습니까?

분류에서Dev

목록 목록을 Python에서 다른 목록이없는 목록으로 바꾸는 방법이 있습니까?

분류에서Dev

파이썬에서 다른 번호 위의 목록에있는 모든 번호의 숫자를 뺄 수있는 방법이 있습니까?

분류에서Dev

수학 함수를 적용 할 때 속성이 다른 요소가있는 R 목록에서 전체 데이터를 추출하는 방법은 무엇입니까?

분류에서Dev

목록의 순서를 유지하는 다른 목록으로 목록을 검색하는 효율적인 방법이 있습니까?

분류에서Dev

Python : 목록에 지정된 데이터 프레임의 모든 열에 개별적으로 함수를 적용하는 방법이 있습니까? 파이 파이낸스 패키지

분류에서Dev

특정 타원 인수를 특정 함수에만 적용하고 다른 함수에는 적용하지 않는 방법이 있습니까?

분류에서Dev

특정 타원 인수를 특정 함수에만 적용하고 다른 함수에는 적용하지 않는 방법이 있습니까?

분류에서Dev

한 목록의 데이터를 다른 목록의 데이터에서 필터링하는 방법은 무엇입니까?

분류에서Dev

다른 정수 값에 대해 작동하도록 목록 값을 변경하는이 함수를 어떻게 얻을 수 있습니까?

분류에서Dev

Python-람다 함수를 사용하여 목록의 모든 요소의 배수로 목록을 필터링하는 방법은 무엇입니까?

분류에서Dev

많은 데이터가 포함 된 목록에서 행을 반환하는 함수를 적용합니다.

분류에서Dev

다른 목록의 중앙에서 목록을 분할하는 더 효율적인 방법이 있습니까?

분류에서Dev

Python에서 list.sort ()보다 목록을 정렬하는 더 효율적인 방법이 있습니까?

분류에서Dev

Python에서 목록 요소를 반복적으로 제거-목록 이해와 for 루프, 다른 결과

분류에서Dev

다른 그룹 목록 (groupby) 내에서 그룹 목록을 구현하는 방법. 다트 사용자 정의 개체에서 여러 해시 코드와 operator ==를 사용할 수 있습니까?

분류에서Dev

이름 목록에서 필드 수의 두 합계를 얻는 방법 : 하나는 2 개 필드이고 다른 하나는 3 개 이상입니까?

분류에서Dev

다른 데이터 프레임에서 데이터를 가져오고 조건이있는 함수를 적용하는 방법은 무엇입니까?

분류에서Dev

반복되는 키와 다른 값을 사용하여 사전 목록에서 요소를 필터링하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    이 목록의 변수로 중첩 목록에 다른 함수를 적용하는 방법이 있습니까?

  2. 2

    이 목록의 변수로 중첩 목록에 다른 함수를 적용하는 방법이 있습니까?

  3. 3

    함수를 적용하는 방법은 python-pandas로 데이터 프레임의 목록에있는 요소를 테스트 할 수 있습니까?

  4. 4

    목록에 Python의 다른 목록이 포함되어 있는지 어떻게 알 수 있습니까?

  5. 5

    Python의 수퍼 클래스와 다른 메서드 서명을 사용하여 하위 클래스를 구현하는 적절한 방법이 있습니까?

  6. 6

    Python : 각 목록 요소를 다른 목록의 특정 요소와 곱하는 목록 이해 방법

  7. 7

    한 목록의 모든 항목이 다른 목록에 포함되어 있는지 Python에서 어떻게 쉽게 확인할 수 있습니까?

  8. 8

    벡터 목록을 포함하는 데이터 프레임이 목록에없는 경우 어떻게 다른 길이를 가질 수 있습니까?

  9. 9

    r에서 둘 이상의 목록 목록에 함수를 적용하는 방법은 무엇입니까?

  10. 10

    Python에서 return을 사용하지 않고 다른 파일의 함수에서 변수를 가져올 수있는 방법이 있습니까?

  11. 11

    두 세트의 목록에 count 함수를 적용 할 수있는 더 좋은 방법이 있습니까?

  12. 12

    목록 목록을 Python에서 다른 목록이없는 목록으로 바꾸는 방법이 있습니까?

  13. 13

    파이썬에서 다른 번호 위의 목록에있는 모든 번호의 숫자를 뺄 수있는 방법이 있습니까?

  14. 14

    수학 함수를 적용 할 때 속성이 다른 요소가있는 R 목록에서 전체 데이터를 추출하는 방법은 무엇입니까?

  15. 15

    목록의 순서를 유지하는 다른 목록으로 목록을 검색하는 효율적인 방법이 있습니까?

  16. 16

    Python : 목록에 지정된 데이터 프레임의 모든 열에 개별적으로 함수를 적용하는 방법이 있습니까? 파이 파이낸스 패키지

  17. 17

    특정 타원 인수를 특정 함수에만 적용하고 다른 함수에는 적용하지 않는 방법이 있습니까?

  18. 18

    특정 타원 인수를 특정 함수에만 적용하고 다른 함수에는 적용하지 않는 방법이 있습니까?

  19. 19

    한 목록의 데이터를 다른 목록의 데이터에서 필터링하는 방법은 무엇입니까?

  20. 20

    다른 정수 값에 대해 작동하도록 목록 값을 변경하는이 함수를 어떻게 얻을 수 있습니까?

  21. 21

    Python-람다 함수를 사용하여 목록의 모든 요소의 배수로 목록을 필터링하는 방법은 무엇입니까?

  22. 22

    많은 데이터가 포함 된 목록에서 행을 반환하는 함수를 적용합니다.

  23. 23

    다른 목록의 중앙에서 목록을 분할하는 더 효율적인 방법이 있습니까?

  24. 24

    Python에서 list.sort ()보다 목록을 정렬하는 더 효율적인 방법이 있습니까?

  25. 25

    Python에서 목록 요소를 반복적으로 제거-목록 이해와 for 루프, 다른 결과

  26. 26

    다른 그룹 목록 (groupby) 내에서 그룹 목록을 구현하는 방법. 다트 사용자 정의 개체에서 여러 해시 코드와 operator ==를 사용할 수 있습니까?

  27. 27

    이름 목록에서 필드 수의 두 합계를 얻는 방법 : 하나는 2 개 필드이고 다른 하나는 3 개 이상입니까?

  28. 28

    다른 데이터 프레임에서 데이터를 가져오고 조건이있는 함수를 적용하는 방법은 무엇입니까?

  29. 29

    반복되는 키와 다른 값을 사용하여 사전 목록에서 요소를 필터링하는 방법은 무엇입니까?

뜨겁다태그

보관