
상황
리스트로 된 요소들이 있는 pandas dataframe을 flatten해서 list로 바꾸는 작업을 list comprehesion으로 해결했다. 하지만 이는 list comprehension을 오남용해서 가독성이 훨씬 떨어지는 코드다.
[passage for lst_passage in make_passages['passages'] for passage in lst_passage]
해결법
- itertools 사용
import itertools
passages = list(itertools.chain.from_iterable(make_passages['passages']))
- 언패킹(* 사용)
passages = list(*passage for passage in make_passages['passages'])
- 함수
def flatten_list(nested_list):
return [item for sublist in nested_list for item in sublist]
passages = flatten_list(make_passages['passages'])