언어
-
defaultdict()언어/파이썬 2020. 12. 28. 06:16
Leetcode에서 most_common_word 의 문제에서 key를 단어로 하고 value를 단어가 나온 횟수로 할 때 defaultdict를 사용해서 어떤 기능때문에 이 defaultdict를 사용하는지 알아고자 했다. defaultdict는 key값을 넣어주지 않아도 자동으로 처음 매개변수로 넣어준 자료형으로 초기화가 된다. 만약 아무것도 넣어주지 않으면 None 형태로 초기화가 된다. 또한 아무것도 자료형으로 넣어주지 않고 그냥 key값만 넣어주면 오류가 난다. 하지만 예를들어 위와 같이 int형을 자료형으로 넣어주고 그냥 key값만 넣어주면 자동으로 key 값이 해당 자료형으로 초기화가 된다. Int형 같은 경우는 0으로, str은 ''으로 초기화가 된다. List는 [], set은 () 으로..
-
pdb언어/파이썬 2020. 12. 22. 23:03
pdb에 대해서 알아보자 pdb란 파이썬 디버깅 모듈로서 디버깅을 하는데 여러가지 장점이 많다. 여러가지 기능중 이번 포스팅에서 중점적으로 살펴볼 것은 pdb.set_trace() 기능이다. 해당 기능은 pdb.set_trace()를 호출한 지점 부터 여태까지 선언된 변수들도 볼 수 있는 기능들을 제공 해준다. 위처럼 pdb.set_trace()를 했던 코드 줄을 시작으로 predictions가 어떻게 이루어져 있나 pdb콘솔에 predictions를 검색해본 모습이다. pdb 콘솔창에 'l'을 치면 현재 내가 어디에있는지를 나타내주고 'n'을 치면 다음 라인으로 넘어간다. 더 좋은기능들은 docs.python.org/3/library/pdb.html 여기로 참고하면 좋다
-
참조와 사본의 차이 (S와 S[:] 의 차이)언어/파이썬 2020. 12. 22. 19:05
최근 알고리즘을 풀 때 여러 케이스에서 list를 다뤘는데 헷갈리는 경우가 많아 정리해둔다. 우선 해당 실험은 파이썬 3.8.3을 기준으로 진행했다. 위의 코드와 같이 케이스는 4개로 구분했다. 첫번째 케이스부터 한번 보자 cmp = full 이 경우는 cmp에 full의 값 뿐만 아니라 주소도 full의 주소와 동일해진다. 그래서 cmp의 값이 바뀌는 것 뿐만 아니라 full의 값도 같이 바뀌게 된다. full의 형태가 바뀌면 cmp도 full의 주소를 참조(refer)하고 있기때문에 값이 바뀌게 된다. cmp[:] = full 이제 2번 케이스의 경우 슬라이스([:])를 cmp의 앞에 해주었다. 이 경우는 값은 full과 동일하게 되지만 1번 케이스와 다르게 cmp의 주소는 연산전 cmp의 주소가 그..
-
파이썬 정규식 표현 re언어/파이썬 2020. 12. 20. 00:00
leetCode 문제를 풀어보기 시작했다. 처음 시작한 문제에서 입력으로 받은 데이터는 대소문자를 구분하지는 않지만 숫자와 영어만으로 이루어져있어야 한다는 제약조건이 있었다. 이때 활용할 수 있는 것을 찾다가 정규표현식 re를 알게되었다. 메타문자 특수한 기능을 하는 문자로 import 등 파이썬의 예약어와 비슷한 역할을 맡는 문자열이라고 생가하면 된다. 파이썬 re 모듈의 메타문자는 총 12개로 다음과 같다 $ () * + . ? [ \ ^ { \ } ] 메타문자는 각각의 문자 하나에 매칭되지 않는다. 예를들어 일반 문자인 a 는 문자 'a'와 매칭되지만, 소괄호 (는 (와 매칭되지 않는다. 그럼 ( 를 어떻게 판별 할 수 있을까? 메타문장 앞에 백슬래시 \ 를 붙여주면 일반문자처럼 한문자에 매칭된다...