Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                            Link
                            
                        
                    | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
                            Tags
                            
                        
                          
                          - 데이터 파이프라인
 - 종류
 - dockerfile
 - 가상환경
 - HADOOP
 - Docker
 - 컴퓨터네트워크
 - 파이썬
 - 컴퓨터 네트워크
 - http
 - AWS
 - TIL
 - 데이터 엔지니어링
 - 데이터베이스
 - S3
 - Django
 - redshift
 - 데이터 웨어하우스
 - TCP
 - sql
 - 자료구조
 - Go
 - 데브코스
 - 운영체제
 - airflow.cfg
 - airflow
 - 데이터엔지니어링
 - PYTHON
 - 정리
 - linux
 
                            Archives
                            
                        
                          
                          - Today
 
- Total
 
홍카나의 공부방
[Python] list.append()와 list의 '+' operator 차이 본문
      Programming Language/Python
      
    [Python] list.append()와 list의 '+' operator 차이
홍문관카페나무 2023. 4. 16. 13:13결론부터 이야기하면 겉으로 봐서는 큰 차이가 없다.
li = [1,2,3,4,5]에서
li.append(10)을 하면 li는 [1,2,3,4,5,10]이 될테고
위에서 append가 아닌 li = li + [10]을 해도 결과는 li = [1,2,3,4,5,10]이 된다.
하지만 list.append() 메소드는 O(1) 시간 복잡도로 동작하며,
리스트의 + 연산은 O(n) 시간으로 동작한다.
append는 쉽게 말하면 메모리 공간 하나를 더 할당해서 이어 붙이는 작업만 하므로 상수시간인 O(1)만 소요된다.
li = li + [10] 연산은 우변의 li + [10]을 계산하기 위한 새로운 리스트 객체가 만들어진다. 이후 L2에 대입이 되는데
li를 전부 베껴야하므로 O(N)의 시간이 소요된다.
겉으로 봐서는 결과가 큰 차이가 없지만
만약 문제 해결에 두 방법을 모두 사용할 수 있다면 효율성을 고려하여 append()를 사용하자.
반응형
    
    
    
  'Programming Language > Python' 카테고리의 다른 글
| .venv 파이썬 가상환경 활성화 (0) | 2023.11.16 | 
|---|---|
| [Python] GIL(Global Interpreter Lock)이 뭘까? (0) | 2023.06.02 | 
| [Python] ClassMethod와 StaticMethod (0) | 2023.05.27 | 
| [Python] 파이썬에는 switch 문이 없다. (0) | 2023.05.20 | 
| [Python] if__name__=="__main__"은 왜쓰나요? (0) | 2023.05.19 |