일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- dataframe
- matplotlib
- PySpark
- Github
- google apps script
- Redshift
- math
- Python
- SQL
- Apache
- Tkinter
- c#
- PostgreSQL
- 파이썬
- string
- list
- Excel
- Kotlin
- Google Excel
- PANDAS
- django
- Mac
- Google Spreadsheet
- gas
- array
- GIT
- numpy
- hive
- Java
- Today
- Total
달나라 노트
Python Basic : filter() 본문
python filter 함수는 list에서 원하는 데이터만을 filtering할 수 있도록 해줍니다.
바로 예시를 보시죠.
list_test = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def filter_condition(x):
if x >= 5:
return x
else:
pass
list_test_new = list(filter(filter_condition, list_test))
print(list_test_new)
- Output
[5, 6, 7, 8, 9, 10]
위 코드는 1부터 10까지의 저어수를 가진 list에서 5 이상인 정수만을 골라서 list로 만드는 코드입니다.
def filter_condition(x) -> 먼저 filter method에서 filtering을 할 때 사용할 함수를 만들어줍니다. 함수의 내용은 5 이상인 값이 주어지면 해당 값을 반환하고 그렇지 않을 경우 pass를 하는 함수를 만듭니다.
filter(조건, list) -> filter 함수는 이러렇게 첫 번째 인자로 조건을, 두 번째 인자로 list를 주어줍니다. 그리고 list 로 전체를 감싸서 output이 list가 되게 만들어야하죠.(filter 함수의 output은 filter object이기 때문에 list 함수를 통해서 이를 list로 만들어줘야 합니다.)
list_test = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list_test_new = list(filter(lambda x: x >= 5, list_test))
print(list_test_new)
- Output
[5, 6, 7, 8, 9, 10]
동일한 기능을 가지지만 filter method에는 커스텀 함수 대신 lambda 식도 사용할 수 있습니다.
filter(lambda x: x >= 5, list_test)
이 부분이 핵심인데 여기를 이해해보면 다음과 같습니다.
1. list_test에 있는 요소들을 하나씩 lambda 식으로 전달
2. lambda 식은 list_test로부터 전달받은 요소를 x에 저장
3. 전달 받은 x값을 가지고 lambda 식의 본문(x >= 5)에 적용하여 True라면 x값을 return하고 False라면 return하지 않음.
따라서 이 예시에서는 x >= 5라면 x를 return하고 그렇지 않다면 x를 return하지 않기 때문에 결국 x >= 5인 값들만 모인 list가 생성될 것입니다.
'Python > Python Basic' 카테고리의 다른 글
Python Basic : map & filter 함수 (0) | 2021.01.24 |
---|---|
Python Basic : strip, lstrip, rstrip (문자열 가장 양쪽의 공백 제거하기. 문자열 가장 양쪽에 있는 특정 문자 제거하기) (0) | 2021.01.20 |
Python Basic : range() (0) | 2020.12.09 |
Python Basic : enumerate() (0) | 2020.12.09 |
Python Basic : class 상속과 super() (0) | 2020.11.29 |