Basic/Python
파이썬 - filter
HappyWeasel
2020. 6. 5. 01:04
words = ['real', 'man', 'rhythm']
r_words = [word for word in words if word.startwith('r')]
# filter를 사용
def starts_with_r(word):
return word.startswith('r')
#lambda 사용
starts_with_r = lambda word: word.startswith('r')
# starts_with_r 함수의 return 값이 True만 가져온다.
r_words = filter(starts_with_r, words)
filter도 map과 동일하게 연산을 하겠다고 약속만 한 상태이다.
# CSV 모듈을 임포트합니다.
import csv
def get_titles_of_long_books(books_csv):
with open(books_csv) as books:
reader = csv.reader(books, delimiter=',')
# 함수를 완성하세요.
is_long = lambda row: int(row[3]) > 250
get_title = lambda row: row[0]
long_books = filter(is_long, reader)
long_book_titles = map(get_title, long_books)
return list(long_book_titles)
# 작성한 함수를 테스트합니다. 주석을 해제하고 실행하세요.
books = 'books.csv'
titles = get_titles_of_long_books(books)
for title in titles:
print(title)