PYTHON3 [Python] List 연산 주의점 알고리즘 문제 풀이 중 거의 18시간 동안 답이 안 나온 문제가 있었다. 아무리 생각해도 오류가 없는데 왜 답이 안되는지 코드 한 줄 한 줄 뜯어보면서 결국엔 알아냈다. 원인은 파이썬 리스트 연산 때문이었다. 아래 두 개의 코드는 결과 출력 값을 보면 똑같다. 하지만 다음 코드를 적용하면 어떤 결과가 나올까? result[2][1] = "A" result_lcph[2][1] = "A" 결과 출력 내가 처음 예상한 결과 값은 result와 result_lcph 둘 모두 오른쪽 결과처럼 나왔어야 했다. 하지만 보다시피 전혀 다른 결과를 낸다. 이러한 원인을 공부하고 블로그에 게시하기 위해 파이썬 docs를 찾아본 결과 정확하게 "이것은 종종 새 파이썬 프로그래머들을 괴롭힙니다"라는 문구가 있다. 리스트에 리.. 2022. 5. 4. [python] decorator 파이썬 데코레이터 이해하기 데코레이터는 함수에서 코드를 바꾸지 않고 추가하거나 수정하고 싶을 때 사용하는 문법이다. 처음 이해하기 조금 난해할 수 있지만 사용 이유, 단순하게 이해할 수 있는 순서 그리고 현실적인 예제 등을 기록하려고 한다. 데코레이터를 사용하는 이유 기존에 만들어진 함수가 다른 곳에서 이미 많이 사용되고 있을 때 (= 함수 코드의 변경이 어려운 경우) 코드를 변경하지 않고, 필요한 내용을 추가하거나 수정하고 싶을 때 사용한다. 위 코드는 a와 b함수에 공통적으로 포함되어 사용되는 code1과 code3이 있다. code1과 code3이 포함된 함수를 별도로 선언하고 사용되면 좋겠다고 느껴질 것이다. 데코레이터는 중복 코드를 재활용하는 과정에 사용한다고 이해할 수 있다. 데코레이터 함수 사용법 이해 데코레이터 사용.. 2022. 1. 22. [python] in 연산자의 실행시간, 시간 복잡도 BigO in 연산자 파이썬에서 자주 사용되는 in 연산자 예제 ls = [1, 2, 3] if 4 in ls : print("exist") else : print("not exist") >>> "not exist" dc = { 'a' : 1, 'b' : 2, 'c' : 3, } if 'c' in dc.keys() : print("exist") else : print("not exist") for k, v in dc.items(): if k == 'c': print(v) >>> "exist" >>> 3 in 연산자의 Big-O 나는 알고리즘 공부를 하던 중에 in연산자의 bigO가 궁금해졌다. 해시의 문제풀이로 사용되는 dict의 경우 in 연산자가 어떤 속도를 내게 될지 궁금해졌기 때문이다. 그리고 list, .. 2022. 1. 7. 이전 1 다음