여러 리스트들을 하나로 합치기 위한 방법들을 알아보자.
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
'파이썬 문법' 카테고리의 다른 글
파이썬 우선순위 큐 (Priority Queues) (1) | 2024.02.29 |
---|---|
파이썬 enumerate (0) | 2024.02.27 |
파이썬 내장 모듈 Collections (0) | 2023.11.20 |
파이썬의 소수 연산 - float 타입과 decimal 모듈 (0) | 2022.10.07 |
파이썬- 문자열 관련 문법(포매팅, strip, split, join) (0) | 2022.07.05 |