brunch

You can make anything
by writing

C.S.Lewis

by 이영민 Dec 06. 2017

[파이썬] 리스트 합치기

Pythonic way to combine FOR loop and IF

파이썬(Python)에서 리스트를 합치는 방법을 공유하려고 합니다. 


Q. 아래 그림처럼 'POI'별로 'Review'를 합치고 싶을 때 어떻게 해야 할까요? 

A. FOR문과 IF문을 한 줄에 넣으면 됩니다.



코드를 통해 좀 더 자세히 알아보죠.

# POI 리스트와 POI+Review 리스트(L)  생성
>>> POI = ['A', 'B', 'C', 'D']
>>> L = [['A', '사과'], ['A', '배'], ['B', '포도'], ['B', '딸기'], ['C', '감'], ['D', '수박']]

# POI별로 Review 합치기
>>> new = [] # 빈 리스트 하나 생성
>>> for i in range(0, len(POI)):
          new.append([POI[i], [L[j][1] for j in range(0, len(L)) if L[j][0] == POI[i]]])

# 결과 보기
>>> new
[['A', ['사과', '배']], ['B', ['포도', '딸기']], ['C', ['감']], ['D', ['수박']]]


이런 글을 작성할 때마다 느끼는 것이, 브런치도 코드 삽입 기능과 내용 복사하기 기능을 지원하면 좋겠어요. 네이버 블로그는 컨텐츠 복사 가능 여부를 작성자가 선택할 수 있도록 하던데 말이죠. 그래서 개발자들이 코드 공유 목적으로는 브런치를 선호하지 않는 것 같아요. 브런치 운영진도 생각이 있어서 그런 것이겠지만 개선이 되면 좋겠네요.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari