본문 바로가기
파이썬

파이썬에서 "필터"객체의 길이를 찾는 방법

by º기록 2021. 1. 5.
반응형
>>> n = [1,2,3,4]

>>> filter(lambda x:x>3,n)
<filter object at 0x0000000002FDBBA8>

>>> len(filter(lambda x:x>3,n))
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    len(filter(lambda x:x>3,n))
TypeError: object of type 'filter' has no len()

내가 얻은 목록의 길이를 알 수 없습니다. 그래서 다음과 같이 변수에 저장해 보았습니다.

>>> l = filter(lambda x:x>3,n)
>>> len(l)
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    len(l)
TypeError: object of type 'filter' has no len()

루프를 사용하는 대신 길이를 얻을 수있는 방법이 있습니까?

 

해결 방법

 

어떻게 든 필터 객체를 반복해야합니다. 한 가지 방법은 목록으로 변환하는 것입니다.

l = list(filter(lambda x: x > 3, n))

len(l)  # <--

하지만 목록 이해력으로 더 쉽게이 작업을 수행 할 수 있기 때문에 처음에는 filter () 사용의 요점을 무너 뜨릴 수 있습니다.

l = [x for x in n if x > 3]

다시, len (l) 은 길이를 반환합니다.

 

참조 페이지 https://stackoverflow.com/questions/19182188

 

 

반응형

댓글