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