목록Python (28)
Just Fighting

자바를 처음 공부하면서 getter, setter의 개념을 알고는 있었으나,파이썬에서 getter, setter를 사용하는 방식은 매우 달랐다.바로 @property를 사용하면 된다. @property@property는 외부에서 호출하지 못하는 클래스의 속성(변수)을메서드처럼 호출할 수 있도록 하며, 이게 바로 getter의 역할을 한다. setter는 @변수명.setter와 같이 선언해주면 된다.setter를 안 쓸 경우에는 읽기전용 변수가 된다고 생각하면 된다. 코드를 함께 살펴보자! class Person: def __init__(self, name): self._name = name # 내부적으로 _name을 사용 (직접 접근 방지) @property def na..

데이터 프레임의 attrs속성은 데이터프레임의 정보를 저장할 수 있는 속성이다. 데이터의 출처, 설명, 단위 등의 부가 정보를 저장해서 사용하면 된다. 딕셔너리의 형태이기 때문에, 딕셔너리를 사용하듯이 저장하고 조회하면 된다.import pandas as pdtest = {'a':[2,3,4], 'b':[5,4,3]}df = pd.DataFrame(test)print('df.attrs의 결과 :', df.attrs)df.attrs['name'] = 'TEST' # 저장print('df.attrs의 결과 :', df.attrs)print("df.attrs['name']의 결과 :", df.attrs['name']) 순서대로 실행한 예시도 함께! https://pandas.pydata.org/docs..

빈 이중 배열을 미리 선언하고, 그 배열에 값을 하나씩 넣고자 했을 때 아래 코드를 사용했다. 그리고 그 결과는 다음과 같다. lli = [[]]*2 for i in range(2): for j in range(1,5): lli[i].append(j) print(lli) 내가 원하던 결과는 [[1,2,3,4,5],[1,2,3,4,5]]인데, 이렇게 나와서 이유를 찾아보니, 빈 배열인 경우에는 그 안에 포함된 모든 배열이 같은 주솟값을 갖는다고 한다. 이렇게 또 하나를 깨달았다..!

중복 순열을 구하고 싶을 땐, itertools의 product()를 사용한다. 한 배열에서 여러번 뽑은 순열을 만들거나 각각의 배열에서 하나씩 뽑은 순열을 만들고자 할 때, product()를 사용하면 된다 ! from itertools import product li = [1,2,3] list(product(li, repeat=2)) li1 = [1,2,3] li2 = [8,9] list(product(li1, li2)) li = [[1,2,3],[8,9]] list(product(*li))