반응형
>>> 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
반응형
'파이썬' 카테고리의 다른 글
파이썬 How to use str.contains() with multiple expressions, in pandas dataframes? (0) | 2021.01.05 |
---|---|
파이썬 Python에서 OpenCV를 사용하여 이미지 분할 (0) | 2021.01.05 |
파이썬 defaultdict의 중첩 된 defaultdict (0) | 2021.01.05 |
파이썬 12 시간을 24 시간 시간으로 변환 (0) | 2021.01.05 |
파이썬 in python, get the output of system command as a string (0) | 2021.01.04 |
댓글