Basic/Python

파이썬 - map

HappyWeasel 2020. 6. 5. 00:47
def get_eng_title(row)
	split = row.split(',')
    return split[1]

#row마다 get_eng_title 함수를 돌면서 return 데이터를 eng_title에 저장한다.
eng_title = map(get_eng_title, movies)


# lambda 이용
eng_title = map(
	lambda row: row.split(',')[1]
    movies
)

 

map의 장점

  • map은 실제로 리스트 결과를 가지고 있는 것이 아니라 map이라는 object만 가지고 있다.
  • 계산을 하겠다고 약속만 한 상태이다.
  • 사용자가 해당 결과가 필요할 때 계산 후 결과를 알려준다.
  • 이에 대한 이점으로 미리 계산을 하지 않으므로 결과가 필요없으면 시간 소요x, 메모리 낭비 x
# CSV 모듈을 임포트합니다.
import csv

def get_titles(books_csv):
    with open(books_csv) as books:
        reader = csv.reader(books, delimiter=',')
        # 함수를 완성하세요.
        get_title = lambda row: row[0]
        titles = map(get_title, reader)
        
        '''
        아래와 같이 긴 코드를 map을 이용하여 1줄로 표현
        titles = []
        for row in reader:
        	titles.append(get_title(row))
        return list(titles)
        '''
        
        return list(titles)


# 작성한 코드를 테스트합니다. 주석을 해제하고 실행하세요.
books = 'books.csv'
titles = get_titles(books)
for title in titles:
     print(title)