본문 바로가기

Python

(89)
[python] 두 변수의 값 비교 및 같은 객체인지 확인하는 assert문 파이썬을 쓰다보면 두 변수의 값과 가리키는 객체가 같은지를 비교해야 할 떄가 있다. 보통 값을 비교할 떄는 == 을, 객체를 비교할 때는 is를 쓴다. >>> a = [1,2,3] >>> b = [1,2,3] >>> a is b False >>> a == b True a와 b 리스트의 값은 같지만, 두 변수는 가리키는 객체가 다르다. 만약 '두 변수의 값이 같고 두 객체는 서로 달라야 한다'라는 조건이 필요하면 아래와 같이 assert를 통해 해당 경우가 아닐떄 에러를 유발시킬 수 있다. >>> assert b == a and b is not a >>> a = [1,2,3] >>> b= a >>> assert b == a and b is not a Traceback (most recent call las..
[python] 파이썬 버전 확인하기 파이썬 버전을 알아보는 방법은 다음과 같다. CLI를 통해서 버전 확인하기 $ python --version Python 2.7.17 $ python -V Python 2.7.17 --version 그리고 -V 두개 옵션으로 파이썬 옵션을 확인할 수 있다. 현재 2.7.17인 것을 알 수 있다. 참고로 버전은 각각의 자리에 따른 의미가 있다. 앞에서 순서대로 * Major 버전 * Minor 버전 * Micro 버전 을 뜻한다. 코드를 통해서 버전 확인하기 >>> import sys >>> print(sys.version) 2.7.17 (default, Feb 27 2021, 15:10:58) sys 모듈의 version을 확인하면 파이썬 버전을 코드로 확인할 수 있다. 또 다른 방법으로는 sys.ver..
[python] 재귀함수를 사용한 list 평탄화 (flatten) def flatten(input): output = [] for v in input: if isinstance(v, list): output.extend(flatten(v)) else: output.extend([v]) return output a = [[1,1],2,[2,[1,2,3],3]] print(flatten(a)) flatten 함수에서 리스트면 재귀 함수를 돌리는 식으로 리스트내의 원소를 1차원 적으로 만드는 코드. 결과 출력 [1, 1, 2, 2, 1, 2, 3, 3]
[python] 함수 정의시 화살표(->)와 콜론(:) 의미 Leetcode를 풀던중 생소한 문법이 보였다. def push(self, x: int) -> None: self.queue.append(x) python3 함수 정의시 -> (화살표) python3에서는 함수 정의시 나타나는 화살표(->)는 함수 리턴 값의 주석 역할을 한다. 말그대로 주석이기 때문에 있으면 좋지만 없다고 문제가 되지는 않는다. 위 함수에서는 None 타입을 리턴하는 함수다. python3 함수 정의시 : (콜론) 비슷한 역할로 콜론이 있다. 위 코드를 보면 x: int 라는 표현이 있는데, 이는 매개변수 x 타입에 대한 주석이다. 즉 x 값은 int로 들어올 것이다. 라는 의미다. 마찬가지로 주석이기 때문에 없다고 문제가 되지는 않는다. 만약 주석대로 코드가 작성되지 않으면? # No..
[python] 리스트 문자열 중 길이가 가장 짧은 문자열 찾기 단순 루프 돌면서 찾기 strs = ["banana", "apple", "watermelon", "strawberry"] min_str = strs[0] for i in range(1, len(strs)): if len(min_str) > len(strs[i]): min_str = strs[i] print(min_str) >> apple 보통 리스트에서 가장 짧은 문자열을 찾을때는 단순 루프를 돌면서 데이터를 찾았다. 그런데 leetcode 문제 풀이중 훨씬 간단한 방법으로 이를 찾는 방법을 찾았다. min 함수 이용하기 strs = ["banana", "apple", "watermelon", "strawberry"] min_str = min(strs, key=len) print(min_str) min ..