[ 언어 및 문법 ]/Python

    [Python] 얕은 복사🥵 vs 깊은 복사🤗

    [Python] 얕은 복사🥵 vs 깊은 복사🤗

    💡 2차원 배열 초기화 할 때 주의! ( * 연산자 vs for문 이용) [얕은 복사 & 깊은 복사] 얕은 복사(shallow copy) 실제 객체 전체를 복사한 것이 아닌, 메모리 주소(참조)만 복사한 것! 즉, 실제로는 연결되어있는 상태 복사해도 같은 곳을 가리킴(참조) 변경 가능한(mutable) 객체일 때에만 얕은 복사를 함 대표적으로 = (대입), * (곱셈) 연산자, copy 모듈의 copy 함수가 해당 (+함수 매개변수도 대입에 해당) ex. arr2 = arr1 ex. arr = [ [0] * n] ] * n 깊은 복사(deep copy) 객체 전체를 모두 새롭게, 전혀 다른 별도의 객체로 생성 각각 독립적인 객체 복사 후 주소값 달라짐 슬라이싱([:]), for문을 통한 2차원 배열 생성..

    [Python] 삼항 연산자 (3항 연산자)

    [ 3항 연산자 ] C/C++에서 x = [조건]? a : b; 와 같이 사용하던 3항 연산자를 Python에서는 다음과 같이 사용하면 된다! # ex1 x = a if [조건] else b # True일 때의 값을 먼저 대입 후 if~else # ex2 [a, b] = [b, a] if a > b else [a, b] # 값 swap (unpacking) [ cf. 만약 if문만 쓰고 else문은 필요 없는 상황이라면? ] # ex3 [a, b] = [b, a] if a > b else break # 이건 error! (값 대입 상황) # ex4 print("hi") if a > b else break # 이건 ok (값 대입이 아닌 print 이므로) ex3과 같이 값을 대입하는 경우에는 else b..

    [Python] list() vs split()

    문자열을 분리하여 리스트로 만드는 방법 2가지 비교 list() : 문자열을 하나하나 분리하여 각 요소를 리스트에 넣어서 반환 split() : split함수 안의 인자를 기준으로 문자열을 분리하여 각 덩어리들을 리스트 요소로 넣어 반환 (하나하나 X) 단, 인자가 없으면 default : ' ' (공백) or '\n' (개행) 문자를 기준으로 덩어리로 쪼갬 list() split()

    [Python] 커스텀 정렬 (cmp_to_key)

    sort()나 lambda 함수를 통한 정렬을 넘어서 좀 더 정교한 정렬이 필요할 때 커스텀으로 정렬 함수를 만들어서 이용할 수 있다. from functools import cmp_to_key data = ["Foo1Bar", "Foo12Bar", "Foo00012Bar", ..., "foo4bar"] def comp(x, y): # 두 대상 비교 후 [음수, 0, 양수] 중 하나 return # ex) if x[0]y[0] return 1 elif x[0] == y[0]: return 0 else: return -1 result = sorted(data, key = cmp_to_key(comp)) # 커스텀 정렬 수행 및 결과 return 좀 더 공부하기!! cf. [백준] 20210. 파일 탐색기 ..

    [Python] 정규표현식(re)으로 string에서 문자, 숫자 분리하기

    import re text = "Foo00012Bar" tmp1 = re.findall("[a-zA-Z]|\d+", text) # '\' : 이스케이프문자(명령어) print(tmp1) tmp2 = re.findall("[a-zA-Z]+|\d+", text) print(tmp2) tmp3 = re.findall("[a-zA-Z]+", text) print(tmp3) tmp4 = re.findall("\d+", text) print(tmp4) tmp5 = re.findall("\d", text) print(tmp5) ''' tmp1 : ['F', 'o', 'o', '00012', 'B', 'a', 'r'] tmp2 : ['Foo', '00012', 'Bar'] tmp3 : ['Foo', 'Bar'] tmp..