python 286

[python3] venv 사용

venv 2021.06.25 - [CentOS 7] virtualenv 설치 및 사용 에서 소개한 virtualenv와 동일한 기능을 하는 python 가상 환경. pip로 설치해야 하는 virtualenv와 다르게 python3.4부터 표준 배포판에 내장되어 있어 별도로 설치할 필요가 없다…… 고 한다. 설치 다만 Ubuntu의 경우, 아래의 명령어로 설치를 수행해야 정상적으로 가상 환경이 생성되었다. 😅 apt install python3-venv 가상 환경 생성 venv는 python3 -m 옵션을 사용해 생성할 수 있다. python3 -m venv ./ # 예시 python3 -m venv ./airflow 지정한 경로에 가상환경이 생성된다. 경로명이 가상 환경의 이름이 된다. 가상 환경 활성화..

Python 2022.07.21

[Ubuntu/virtualenv] AttributeError: module 'virtualenv.create.via_global_ref.builtin.cpython.mac_os' has no attribute 'CPython2macOsArmFramework'

현상 Ubuntu 20.04 LTS에서 python virtualenv를 이용해 가상환경을 구성하려고 한다. pip도 설치되어 있지 않은 빈 OS 상태였기 때문에 아래와 같이 virtualenv 설치를 진행했다. # root 계정으로 전환 sudo -i # 패키지 저장소 업데이트 apt update # python3 pip 설치 apt install python3-pip # virtualenv 설치 pip install virtualenv # 설치 확인 pip list 설치 확인 시 아래와 같이 설치된 모습을 확인했다. 하지만 가상 환경 생성을 시도했을 때 명령어를 찾지 못해 다시 패키지를 설치하라는 안내가 출력되었다. 따라서 안내된 명령어로 다시 python virtualenv 설치했다. 그리고 아래와..

Linux 2022.07.20

[Python] 2차원 배열 열 추출

2차원 배열 열 추출 2차원 배열에서 각 행을 추출하는 방법은 간단하다. 2차원 배열은 배열이 원소이기 때문에 각 원소인 배열을 통으로 출력하면 되기 때문이다. a = [ [0, 1], [2, 3], [4, 5], [6, 7], [8, 9], ] for i in range(5): print(a[i]) 그렇다면 배열 내 배열의 원소에 접근해야 하는 열의 경우에는 어떻게 추출할 수 있을까? 방법을 몇 가지 정리해둔다. 리스트 컴프리헨션 리스트 컴프리헨션을 이용해 각 행에서 n번째의 원소만을 뽑아낸다. a = [ [0, 1], [2, 3], [4, 5], [6, 7], [8, 9], ] print([t[0] for t in a]) print([t[1] for t in a]) 반복문을 이용해 모든 열을 뽑을 때..

Python 2022.07.14

[functools] reduce 함수

functools high-order-function을 위해 고안된 것으로 다름 함수에 적용하거나 다른 함수를 반환하는 모듈이다. 💡 High-Order-Function (고차함수) 하나 이상의 함수를 인자로 받거나 함수를 결과로 반환하는 함수로, 쉽게 말해 함수를 다루는 함수라고 할 수 있다. 함수형 프로그래밍을 할 때 사용한다. HOF를 사용하면 유연하고 반복을 줄일 수 있는 코드를 작성할 수 있다. functools는 다음과 같은 함수를 제공한다. Iru_cached cmp_to_key total_ordering partial reduce 이 글에서는 functools가 제공하는 함수는 reduce에 대해서 정리한다. reduce() 여러 개의 데이터를 대상으로 주로 누적 집계를 내기 위해 사용한다..

Python 2022.07.04

[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

[BOJ] 2998 - 8진수

문제 https://www.acmicpc.net/problem/2998 창영이는 2진법 수를 8진법 수로 변환하려고 한다. 창영이가 사용한 방법은 아래와 같다. 1. 2진수의 길이가 3으로 나누어 떨어질 때까지 수의 앞에 0을 붙인다. 2. 그 다음, 3자리씩 그룹을 나눈다. 3. 아래의 표를 참고해 8진수로 바꾼다. 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 창영이가 사용한 방법을 이용해 2진수를 입력받아 8진수를 바꾸는 프로그램을 작성하라. 입력의 첫번째 줄에 2진수가 주어진다. 풀이 Python에서 2진수를 입력받는 방법과 정수를 8진수를 변환하는 방법을 알면 간단하게 해결할 수 있다. 1. int(x, base=10) int 함수의 base는 x의 진수에..

[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

[Set] 집합 연산

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

Python 2022.04.30