반응형
foo = [x for x in bar if x.occupants > 1]
여기에서 인터넷 검색 및 검색을 한 후에도 이것이 무엇을하는지 알 수 없습니다. 내가 올바른 물건을 찾고 있지 않았을 수도 있지만 여기 있습니다. 이 속기의 해체에 대한 모든 의견은 대단히 감사합니다.
해결 방법
예를 들어 10 개의 숫자가 있고 5보다 큰 숫자의 하위 집합이 필요하다고 가정 해 보겠습니다.
>>> numbers = [12, 34, 1, 4, 4, 67, 37, 9, 0, 81]
위 작업의 경우 아래 접근 방식은 서로 완전히 동일하며 가장 장황한 것에서 간결하고 읽기 쉬운 pythonic 으로 이동합니다.
result = []
for index in range(len(numbers)):
if numbers[index] > 5:
result.append(numbers[index])
print result #Prints [12, 34, 67, 37, 9, 81]
result = []
for number in numbers:
if number > 5:
result.append(number)
print result #Prints [12, 34, 67, 37, 9, 81]
result = [number for number in numbers if number > 5]
[function(number) for number in numbers if condition(number)]
어디:
구문을 약간 다른 방식으로 이해하려면 아래 보너스 섹션을 참조하십시오.
(약간 비단뱀 적이지만 완전성을 위해 여기에 두십시오)
위의 예는 다음과 같이 작성할 수 있습니다.
result = filter(lambda x: x > 5, numbers)
위의 일반 표현식은 다음과 같이 작성할 수 있습니다.
result = map(function, filter(condition, numbers)) #result is a list in Py2
참조 페이지 https://stackoverflow.com/questions/6475314
반응형
'파이썬' 카테고리의 다른 글
파이썬 SQLAlchemy-테이블 목록 가져 오기 (0) | 2020.09.30 |
---|---|
파이썬 Windows에서 Python이 설치된 위치를 어떻게 찾을 수 있습니까? (0) | 2020.09.30 |
파이썬에서 대용량 텍스트 파일을 메모리에로드하지 않고 한 줄씩 읽을 수 있습니까? (0) | 2020.09.30 |
파이썬의 원시 문자열 리터럴이 단일 백 슬래시로 끝날 수없는 이유는 무엇입니까? (0) | 2020.09.30 |
파이썬 문자열 대신 바이트로 작동하는 StringIO 대체? (0) | 2020.09.30 |
댓글