서로 다른크기의 리스트 합치는 방법
이 글에서 뜻하는 서로다른 크기의 리스트 합치기란,
a = [1,2,3], b = [4,5] 일 때,
c = (1,4), (2,5), (3,)으로 만드는 방법을 뜻한다.
방법
같은 크기의 리스트일 때에는, zip이나 numpy를 사용해서 쉽게 합칠 수 있다.
예) a = [1,2,3], b = [4,5,6]일 때, c = (1,4), (2,5), (3,6)을 zip이나 numpy를 사용해 만들 수 있다.
하지만 다른 크기의 리스트일 때, zip을 사용하게되면,
c = (1,4), (2,5), (3,)으로 만들어지는게 아닌, (3,)은 맞아떨어지는 짝이 없기때문에 무시하게된다(사라진다).
이때! 사용하는게 zip_longest다.
zip_longest에 대한 설명은 따로 필요없고 바로 코드로 보면
import itertools # zip_longest를 사용하기 위해
a = [1,2,3]
b = [4,5]
for x,y in itertools.zip_longest(a,b):
print(x,y)
위 코드처럼 하면 (3,)이 아닌, (3,None)이 되게된다.
None 부분을 원하는 값으로 설정해줄 수 있는데,
for x,y in itertools.zip_longest(a,b,fillvalue="(원하는 값)")
위 처럼, fillvalue 인자를 넣어주면 된다.
반응형
'Language > Python' 카테고리의 다른 글
python dict value 순서로 정렬하기 (0) | 2020.02.03 |
---|---|
python permutations (0) | 2020.01.30 |
python 딕셔너리 키 중복으로 넣는법 (2) | 2020.01.15 |
python range, enumerate 차이점 (1) | 2020.01.14 |
python 리스트 안에 딕셔너리 중복제거 하는 방법 (0) | 2019.07.25 |