Python 308

[Python] 2차원 배열을 1차원 배열로 변환

2차원 배열을 1차원 배열로 변환 프로그래밍을 하다 보면 2차원 배열을 1차원 배열로 변환해야 할 때가 있다. 보통 아래와 같이 반복문을 사용해서 리스트를 누적시키는데, 이 외의 방법을 정리한다. my_list = [[1, 2], [3, 4], [5, 6]] answer = [] for element in my_list: answer += element sum(iterable, start) sum 함수는 매개변수로 전달받은 start에 iterable의 모든 데이터를 더한다. list1 = [[1, 10], [2, 22], [3, 19], [4, 7]] list2 = sum(list1, []) print(list2) 위 코드에서 sum(list1, [])은 [] + [1, 10] + [2, 22] + [..

Python 2022.07.01

[Python] exec

exec 문자열 또는 코드 객체와 같이 동적으로 생성된 프로그램을 실행한다. exec(object, globals=None, locals=None) 매개변수 object : 문자열 또는 코드 객체 global : (선택) 딕셔너리 사용 locals : (선택) 매핑 객체 사용 사용법 exec('CODE') # 예시 code = 'nums = [i for i in range(5)]' exec(code) print(nums) exec 외에서 선언한 변수, 라이브러리도 exec 내에서 사용할 수 있다. eval VS exec exec은 문자열 식을 실행하는 eval 함수와 비교되곤 한다. 참고 : 2021.12.17 - [eval] 문자열 식 실행 exec 또한 eval과 마찬가지로 문자열을 실행시키므로 매우..

Python 2022.06.22

[assert] 가정 설정문

assert 뒤의 조건이 참이 아니면 AssertError를 발생시킨다. 예외를 발생시킨다는 점에서 예외 처리와 비슷하게 생각할 수 있지만, assert는 단순히 예외를 처리하기 위함이 아니라 값을 보증하기 위해 사용한다. 방어적인 프로그램을 작성하기 위해 사용한다. 문법 assert , # 예시 assert False assert False, 'assertError 발생' 에러 메시지는 생략할 수 있다. 참고 문서 https://wikidocs.net/21050 https://engineer-mole.tistory.com/217 https://blockdmask.tistory.com/553

Python 2022.06.03

[import] 모듈 가져오기

모듈 (Module) 함수나 변수 또는 클래스를 모아 놓은 파일 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일 이 글에서는 모듈을 import 하는 방법을 몇 가지 정리한다. import 문 모듈 전체를 가져온다. import # 예시 import itertools import math, sys 여러 모듈을 가져올 때는 모듈을 쉼표로 구분하여 나열한다. 사용할 때는 모듈 뒤에 점을 찍어 원하는 함수, 클래스를 지정한다. import ~ as 문 모듈 이름을 다르게 지정한다. import as # 예시 import itertools as it from ~ import 문 전체 모듈이 아니라 지정한 일부만 가져온다. from import # 예시 from itertools import ..

Python 2022.05.28

[code-server] Command 'Jupyter: Create New Blank Notebook' resulted in an error (command 'jupyter.createnewnotebook' not found)

VSCode 또는 code-server에서 jupyter extension을 설치하면 명령 팔레트에서 "Jupyter: Create New Blank Notebook"를 사용하여 .ipynb 파일을 생성하여 사용할 수 있다. ( 버전에 따라 생성 명령은 조금씩 다른 것 같다. ) 참고 : 2022.04.19 - [VSCode] jupyter notebook 사용 현상 다만, code-server에서 기본 마켓플레이스(open-vsx)를 이용해 python, jupyter extension을 설치하여 사용하려고 하면 아래와 같은 메세지와 함께 .ipynb 파일이 생성되지 않는 현상을 확인했다. 상세 로그는 브라우저 개발자 도구에서 확인할 수 있다. 내 경우에는 code-server 기본 마켓플레이스를 이용..

Python 2022.05.01

[Set] 집합 연산

2021.09.26 - [알고리즘 기초] 동명이인 찾기 / Set 에서 Set의 개념을 간단하게 아래와 같이 정리했었다. [알고리즘 기초] 동명이인 찾기 / Set 여러 사람의 이름이 저장된 리스트에서 동명이인의 이름 집합을 반환하는 문제이다. 집합; Set 리스트와 같이 정보를 여러 개 넣어서 보관하는 자료구조 같은 자료가 중복되어 저장되지 않고, 자 passwd.tistory.com 리스트와 같이 여러 정보를 넣어서 보관하는 자료구조 중복을 허용하지 않고, 자료의 순서가 없다. 여기에 더해서 set은 수학적 개념인 집합을 다룰 수 있는 데이터형이기도 한다. 집합과 명제할 때 그 집합 맞다. 따라서 이 글에서는 수학에서의 집합 개념을 python set으로 다룰 때 사용하는 연산, 함수 등을 정리해두려..

Python 2022.04.30

[code-server] 확장 프로그램(extension) 수동 설치

code-server https://coder.com/ Github : https://github.com/coder/code-server VS Code를 브라우저를 통해 접근하고 실행할 수 있도록 개발된 오픈 소스 Electron 기반의 오픈소스로 개발된 소스코드 에디터 VS Code를 Node.js를 통해 Sever에 올리고 크롬 기반의 브라우저를 통해 실행하여 사용할 수 있도록 한다. Extension marketplace VS Code 자체는 오픈 소스이지만, 마이크로소프트의 확장 프로그램 마켓플레이스와 확장 프로그램은 오픈 소스가 아니다. 무엇보다 마이크로소프트는 타사의 VS Code(code-server가 해당된다.)를 사용해 마켓플레이스에 접근하는 것을 서비스 약관으로 금지하고 있다. 따라서 ..

Python 2022.04.23

[Python] 익명 함수 - lambda 표현식

def 리터럴 표기법에 따라 함수를 생성할 때 사용되는 키워드 def 키워드는 함수 클래스를 통해 함수 객체를 생성하고, 객체를 함수 이름과 같은 변수에 담는 과정을 담당한다. 변수에 담긴 함수 객체는 메모리에 올라가서 호출을 대기하는데, 이는 한 번만 사용될 함수라면 메모리 낭비에 해당된다. 한 번만 사용될 함수라면 익명함수를 사용하는 것이 좋다. 익명 함수 이름이 없는 함수를 뜻하며, Python에서는 lambda라는 키워드를 이용해 익명 함수를 정의할 수 있다. 이름이 없어 재사용이 불가능하다. 다만 일반 함수와 동일하게 변수에 할당될 수 있기 때문에, 변수에 저장된 lambda 함수는 재사용이 가능하다. lambda lambda 키워드를 이용한 함수는 람다 함수 또는 람다 표현식이라고 한다. la..

Python 2022.04.20

[VSCode] jupyter notebook 사용

VSCode는 python 개발 환경으로 많이 사용되지만, 데이터 분석 관련으로는 아무래도 jupyter notebook과 jupyterlab이 많이 사용된다. 즉, jupyter notebook도 새로 설치를 하게 되는데, VScode의 관련 확장 프로그램 몇 가지를 설치하면 VSCode 상에서도 jupyter notebook을 사용할 수 있게 된다. 설정 방법을 정리해둔다. 방법 1. VSCode 설치 아래의 링크에서 환경에 맞는 버전을 다운받아 설치한다. https://code.visualstudio.com/download Download Visual Studio Code - Mac, Linux, Windows Visual Studio Code is free and available on your ..

Python 2022.04.19

[Conda] 개념 및 기본 명령어

conda Python, R, Ruby, Lua, Scala, Java, Javascript, C/C++. FORTRAN 등 언어의 의존성과 패키지, 환경을 관리하는 도구 Windows, macOS 및 Linux에서 실행할 수 있는 오픈 소스 패키지 및 환경 관리 시스템 환경을 쉽게 생성하고, 전환할 수 있으며 패키지와 의존성 패키지를 설치하고 업데이트할 수 있다. 또한 소프트웨어를 패키징하고 배포할 수도 있다. 기본적으로 repo.anaconda.com에 저장된 패키지를 설치하고 관리한다. Conda는 Anaconda와 Miniconda에 포함되어 있으며, conda-forge에서도 사용할 수 있다. Anaconda 머신러닝이나 데이터 분석 등에 사용하는 패키지가 기본적으로 포함되어 있는 파이썬 배포판..

Python 2022.04.13