파이썬 문법

파이썬 리스트 합치기

토리쟁이 2024. 2. 24. 18:37

 

 

여러 리스트들을 하나로 합치기 위한 방법들을 알아보자.

 

 

1. + 연산자 사용

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]

comb_list = list1 + list2
print(comb_list) # ['a', 'b', 'c', 1, 2, 3]

 

 

 

 

2. extend() 메서드 사용

  • list에서 제공하는 함수
  • 리스트1.extend(리스트2)
  • 리스트1에 리스트2의 요소들을 추가
  • 리스트1이 변경됨
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]

list1.extend(list2)

print(list1) # ['a', 'b', 'c', 1, 2, 3]

 

 

 

 

3. sum 함수 사용

  • sum(더할 값, 시작 값)
  • 두 번째 인자로 받은 시작 값에 첫 번째 인자인 더할 값을 더한 결과를 반환
  • 시간복잡도는 O(n)이므로 긴 시퀀스의 합계를 구할 때 시간이 오래 걸림 → numpy 모듈 사용
  • 2차원의 리스트들을 1차원의 리스트로 합칠 때 사용하는 경우가 많다.
  • 리스트의 원소들을 모두 합한 결과를 산출할 때 sum() 함수를 자주 사용하는 경우가 많은데, 예를 들어 sum([1, 2, 3])은 두 번째 인자가 없으므로 default 값인 0에 리스트의 원소인 1, 2, 3을 더하게 되는 것이다. 0+1+2+3 = 6
  • 2중 리스트를 넣게 된다면?
    • print(sum([[1, 2], [3]]))은 두 번째 인자로 디폴트 값인 0이 들어가게 되므로, int와 list를 합칠 수 없다는 에러가 발생한다.
    • 하지만, 두 번째 인자로 []를 넣어줄 경우 [] + [1, 2] + [3] 이 되므로 [1, 2, 3]이 잘 반환된다.
# print(sum([[1, 2], [3]])) # 에러 발생
list1 = [['a', 'b'], ['c']]

comb_list = sum(list1, [])
print(comb_list) # ['a', 'b', 'c']

 

 


참고

https://splayer.tistory.com/15

https://blockdmask.tistory.com/558

 

sum

https://ctkim.tistory.com/entry/Python-Sum-function