본문 바로가기

Python49

# 16. eval eval 함수는 expression (표현식)을 기반으로 동작을 하는 함수이다. expression이 무엇인지 한번 알아보자. eval('1+2') >> 3 위와 같이 1+2 라는 동작을 문자열로 나타낸 것이 expression이다. 즉, 특정 동작을 나타낸 문자열 단위이다. 다른 expression도 확인해보겠다. eval('len([1, 2, 3, 4])') >> 4 eval('abs(-90)') >> 90 다음과 같이 간단한 동작들을 expression을 통해 수행할 수 있다. eval('l = [1, 2, 3]') >> Traceback (most recent call last): File "", line 1, in File "", line 1 l = [1, 2, 3] 반면 eval을 통한 메모리.. 2021. 8. 2.
# 2. LU 분해 (LU Decomposition) https://dev-ryuon.tistory.com/46 # 1. 가우스 소거법 (Gauss Elimination) [서론] 선형 시스템은 해를 가지는 케이스가 총 3가지로 나누어진다. 1. 해가 하나인 경우 - x=2 인경우에만 성립한다. ex) 3x = 6 2. 해가 여러개인 경우 - 어떠한 x를 대입하더라도 성사된다. ex) 0x = 0 dev-ryuon.tistory.com 이 포스트는 가우스 소거법에 대해 숙지하고 보시는 것을 추천합니다. 이론 LU 분해는 Gauss Elimination 을 행렬이라는 자료구조로 표현한 것을 의미한다. 숫자는 인수분해가 가능하다. 행렬도 숫자와 마찬가지로 분해가 가능하다. 행렬을 분해하는 방법에는 대표적으로 세 가지가 있다. LU Decomposition QR.. 2021. 6. 13.
# 1. 가우스 소거법 (Gauss Elimination) https://dev-ryuon.tistory.com/45 # 0. 선형 시스템 (Linear System) [이론] 중고등학교때 다들 '함수'라는 개념은 익히 알고있을 것이다. 함수는 방정식으로써 표현이 가능하고, 미지수가 적을 경우 수기로도 충분히 해를 구할 수 있다. 하지만, 방대한 양의 데이 dev-ryuon.tistory.com 이 포스트는 선형 시스템에 대해 숙지하고 보시는 것을 추천합니다. 이론 선형 시스템은 해를 가지는 케이스가 총 3가지로 나누어진다. 1. 해가 하나인 경우 - x=2 인경우에만 성립한다. ex) 3x = 6 2. 해가 여러개인 경우 - 어떠한 x를 대입하더라도 성사된다. ex) 0x = 0 3. 해가 존재하지 않는 경우 - 어떠한 x를 대입하더라도 성사되지 않는다. ex.. 2021. 6. 10.
# 15. [Tip] chunk 리스트를 원하는 원소 수대로 묶는 방법! from math import ceil def chunk(lst, size): return list(map(lambda x: lst[x * size:x * size + size], list(range(0, ceil(len(lst) / size))))) 좀 복잡해보이는 방법.. math 모듈의 ceil (올림) 메소드를 사용하여 구현한 것이다. 좀더 깔끔하게 짤 수 있는 방법을 알아보겠다. def chunk(lst, n): return [lst[i:i+n] for i in range(0, len(lst), n)] 파이썬의 슬라이싱을 활용하여 간결하게 구현할 수 있다! 2021. 6. 2.
# 14. dictionary setdefault, defaultdict 그동안 여러모로 일이 많아서 포스트가 미뤄졌습니다.. (--) (__) 그동안 새로 알게된 사실들을 차근차근 정리하고자 한다.. 우선 딕셔너리에 기본값을 설정하는 깔끔한 방법부터 정리하겠다! 이번 포스트에서 다룰 내용은 크게 두 가지이다. 첫 번째는 setdefault() 메소드를 활용하여 단일 키값에 대한 기본값 설정, 두 번째는 defaultdict 컬렉션을 활용하여 대입되는 키값에 대한 기본값 설정이다. 바로 코드로 확인해보겠다. # setdefault 를 알기 전, 각 키별로 기본값을 설정하는 방법 def set_default_value(): d = dict() keys = [1, 2, 3, 4, 5] for k in keys: d[k] = list() print(d) 만약 각 키값에 리스트를 기.. 2021. 5. 28.
# 1. QSplitter 필자는 위젯을 배치하여 유연하게 사이즈를 조절하는 법이 궁금했다.. 현재 두개의 QTableWidget을 QMainWindow에 생성한 상태이다. 정렬할 위젯들을 복수 선택한다. 위의 빨간 버튼을 클릭하면 가로든 세로든 유연하게 배치할 수 있다. QSplitter 안에 위젯들이 정렬된 것을 확인할 수 있다. 이는 실행되는 상태에서도 마우스를 통해 위젯의 크기를 조절할 수 있다. 2021. 5. 6.