728x90
Python
72

[Pillow] Improve handling of file resources

__del__ 함수는 python의 ResourceWarnings를 예방하기위해 열려있는 file handler를 닫는 용도로 사용된다. 하지만 __del__ 함수는 다음과 같은 단점들을 가지고 있다. 1. __del__ 함수는 참조된 object의 개수가 0이 될 때까지 호출되지 않는다. 그래서 resource handler가 필요 이상으로 사용되거나 열러있다. 2. __del__함수는 system exit가 될 때 실행이 보장되지 않는다. (Python documentation) It is not guaranteed that __del__() methods are called for objects that still exist when the interpreter exits. 3. __del__ 함수..

Temp 2022.09.05

[Numpy] Reshape

In [2]: import numpy as np In [4]: test_matrix = [[1,2,3,4], [1,2,5,8]] np.array(test_matrix).shape Out[4]: (2, 4) In [5]: np.array(test_matrix).reshape(2, 2, 2) Out[5]: array([[[1, 2], [3, 4]], [[1, 2], [5, 8]]]) In [7]: test = np.array(test_matrix).reshape(8,) test Out[7]: array([1, 2, 3, 4, 1, 2, 5, 8]) -1로 지정해주면 다른 열 또는 행을 기준으로 자동으로 맞춰준다. 예를 들어 다음과 같이 reshape(-1, 1)로 지정해주었다면 1열로 맞추고 행은 따라서 자..

Numpy 2021.07.16

한 번 사용하고 버려지는 Iterator 객체

map, reversed와 같은 함수에서 반환하는 Iterator 객체는 한 번 사용되면 지워진다. 즉, 일회성이라고 할 수 있다. 우선 map을 사용해서 확인해보자. arr = map(int, input().split()) max_ = max(list(arr)) print(list(arr)) 위 코드를 보면 arr에 입력한 숫자들을 int형으로 변환한 iterator 객체를 저장하고 max_에 최댓값을 저장한다는 것을 알 수 있다. 그리고 arr를 리스트로 출력하면 빈 리스트([])가 나온다. 왜일까?? 차례대로 확인해보자. arr에 iterator가 저장된다. max_에 arr안에 있는 숫자들 중 최댓값이 저장된다. 이때 arr에 저장된 iterator 객체가 사용되었다고 생각하자. arr를 리스트로..

Python 2021.06.13

[Programmers]Python_수식 최대화

문제 문제 설명 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 같은 방식으로 결정하려고 합니다. 해커톤 대회에 참가하는 모든 참가자들에게는 숫자들과 3가지의 연산문자(+, -, *) 만으로 이루어진 연산 수식이 전달되며, 참가자의 미션은 전달받은 수식에 포함된 연산자의 우선순위를 자유롭게 재정의하여 만들 수 있는 가장 큰 숫자를 제출하는 것입니다. 단, 연산자의 우선순위를 새로 정의할 때, 같은 순위의 연산자는 없어야 합니다. 즉, + > - > * 또는 - > * > + 등과 같이 연산자 우선순위를 정의할 수 있으나 +,* > - 또는 * > +,-처럼 2개 이상의 ..

728x90