분류 전체보기 1191

[Python] Dictionary 배열에서 조건에 맞는 원소 찾기 - 2

개요 2022.10.06 - [Python] Dictionary 배열에서 조건에 맞는 원소 찾기 - 1에서 조건 하나와 일치하는 Dictionary를 찾아보았는데, 이번에는 다중 조건을 고려해보려고 한다. 능력이 부족한 탓에 stackoverflow에 등록된 소스를 정리해둔다. 다중 조건 고려 - 최소 1개 조건 일치 Dictionary List에서 다중 조건을 고려하여 요소를 찾는 함수는 아래와 같다. 주석으로 코드의 내용을 적어두었다. # input : dictionary list, 조건(key=value) # output : dictionary def find_dict(objects, **kwargs): return next(( # list 탐색 obj for obj in objects # 배열 내..

Python 2022.10.09

[Python] any/all - 여러 요소의 참/거짓 확인

개요all, any 함수는 Python 내장 함수로 여러 개의 데이터에 대한 참/거짓을 판단할 때 사용한다. 각각 살펴보자. all(iterable)일반적으로 여러 개의 데이터가 어떤 조건을 만족하는지 확인할 때 다음과 같은 반복문을 사용해 확인하게 된다.# 전달 받은 데이터 모두 짝수인지 확인def all_positive_even(nums): for num in nums: if num all 함수는 매개변수로 iterable한 객체(list, tuple 등)를 받아, 전달받은 객체 내의 모든 요소가 True일 때만 True를 반환한다. 즉, 전달받은 객체 중 하나의 요소라도 False이면 False를 반환한다. 따라서 all 함수를 사용하면 반복문 없이도 여러 개의 데이터가 어떤 조건..

Python 2022.10.08

[Python] Dictionary 병합

개요 서로 다른 Dictionary 두 개를 병합하고자 한다. 두 Dictionary에는 중복된 키가 있을 수도 있고 없을 수도 있다. 몇 가지 방법을 정리해둔다. dictionary.update(iterable) update 함수는 호출한 Dictionary를 변경하는 함수로, 매개변수로 전달받은 Dictionary 또는 iterable 한 객체를 추가한다. key가 중복되는 경우 매개변수로 전달된 값으로 갱신된다. 예시 ) Dictionary x = {"spam": 1, "eggs": 2, "cheese": 3} y = {"cheese": "cheddar", "aardvark": "Ethel"} x.update(y) 예시 ) tuple iterable tuple 데이터에서 먼저 나열된 값이 key가 ..

Python 2022.10.07

[Python] Dictionary 배열에서 조건에 맞는 원소 찾기 - 1

개요 Dictionary를 원소로 하는 리스트를 다루던 중, 특정 속성의 값에 해당하는 원소를 찾을 필요성이 생겼다. 탐색에 사용할 속성은 1개이고, 그 속성의 값은 배열에서 unique 하지만 존재하지 않을 수도 있다. 배열 내 찾는 원소가 없을 때는 None, 또는 검색한 속성과 값을 제외하고는 값이 빈 Dictionary를 반환하고자 한다. next(iterable, default) next 함수는 반복 가능한 객체의 다음 요소를 반환하는 개체이다. default는 마지막 요소를 반환할 이후 반환할 값을 설정할 수 있다. 예로 들어 아래의 people dictionary 리스트에서 name이 Tom인 객체는 다음과 같이 찾을 수 있다. people = [ {"name": "Tom", "age": 1..

Python 2022.10.06

[Python] @ - Decorator

Decorator 장식하다, 꾸미다는 의미를 가진 decorate에 er/or을 붙인 말로 장식자, 도배업자 등을 의미한다. 즉, 방을 벽지나 커튼으로 꾸미듯이 기존의 코드, 함수에 여러 기능을 추가하는 구문으로 함수 위에 @로 시작한다. 이전에 2022.09.17 - [Flask] REST API 만들기 내 소스에서 @app.route가 바로 데코레이터에 해당한다. @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': do_the_login() else: show_the_login_form() 이 글에서는 데코레이터를 생성하고, 사용하는 방법을 정리한다. 만약 1급 객체, 클로저에 대한 개념이 없다면..

Python 2022.10.05

[Python] Closure

Closure 자신을 둘러싼 scope의 상태 값을 기억하는 함수로, 클로저는 다음의 세 가지 조건을 만족해야 한다. 해당 함수는 어떤 함수 내에 중첩된 함수여야 한다. 해당 함수는 자신을 둘러싼 함수 내의 상태 값을 참조해야 한다. 해당 함수를 둘러싼 함수는 내부의 함수의 반환해야 한다. 💡 각 조건에 대한 배경 지식은 아래 글을 참고할 수 있다. 2022.10.01 - [Python] 전역/지역 변수와 범위 2022.11.03 - [Python] 중첩 함수 2021.11.23 - [Python] 변수에 함수 저장 예시를 통해 알아보자. 예시 지역 변수 a, b를 샤용하여 결괏값을 계산하는 함수 mul_add를 반환하는 함수 calc가 있다고 하자. def calc(): a = 3 b = 5 def m..

Python 2022.10.04

[Python] 중첩 함수

중첩 함수 함수 안에 생성한 함수. 즉, Python은 함수 정의 안에 다름 함수를 정의할 수 있다. def print_hello(): hello = 'Hello, world!' def print_message(): print(hello) print_message() print_hello() print_hello() 함수 내에서 정의한 중첩 함수 print_message()는 선언한 함수 내에서 호출해도 실행되지 않는다. 바깥의 print_hello()가 호출되어야 중첩 함수가 실행된다. 지역 변수 범위 중첩 함수 print_message()는 print_hello()의 지역 변수 hello를 사용할 수 있다. nonlocal 전역 변수와 비슷하게, 중첩된 함수의 바깥쪽 함수의 지역 변수를 안쪽 함수에서..

Python 2022.10.03

[Vim] 변경 내역 확인

개요Vim 편집기에서 편집한 내용을 실행 취소(undo)할 때는 :u를 입력하면 된다.그리고 실행 취소한 내용을 다시 실행(redo)할 때는 CTRL + R을 입력하면 된다. 그렇다면 변경 내역 자체는 어떻게 확인할 수 있을까?   :changesVim은 변경 사항이 발생한 위치(열 번호, 줄 번호)를 변경 목록에 기록하고, 각 버퍼에는 실행 취소할 수 있는 최근 100개의 변경을 기억한다. 한 줄에 수정이 여러 번 이루어졌다면 나중에 변경된 위치만 기록된다. 변경 목록은 :changes를 입력하여 확인할 수 있다.  예시예로 들어 위의 내용을 가진 파일이 있다고 하자.# test fileimport osimport refrom flask import request@app.route('/method', ..

Linux 2022.10.02

[Python] 전역/지역 변수와 범위

전역 변수와 지역변수 전역 변수(global variable) 함수를 포함해 스크립트 전체에서 접근할 수 있는 변수. 전역 변수에 접근할 수 있는 범위를 전역 변수(global scope)라고 한다. x = 10 # 전역 변수 def foo(): print(x) # 전역 변수 출력 foo() print(x) # 전역 변수 출력 지역 변수(local variable) 변수를 선언한 블록 내에서만 접근할 수 있는 변수. 지역 변수를 접근할 수 있는 범위를 지역 범위(local scope)라고 한다. def foo(): x = 10 # 지역 변수 print(x) # 지역 변수 출력 foo() print(x) # 지역 변수 출력 foo() 밖에서 변수 x에 접근하려고 하면 오류가 발생한다. global 키워드 ..

Python 2022.10.01

[Linux] ~<username> - 사용자 홈 디렉터리

~ 쉘 스크립트를 보다 아래와 같은 구문을 보았다. BASE_DIR=~ # 예시 BASE_DIR=~ubuntu 특정 디렉터리 정보를 담은 변수를 선언한 것 같긴 한데, 정확히 어느 경로인지 확인해보려고 한다. 확인 쉘에서 변수를 직접 선언한 뒤, echo 명령으로 확인해봤다. BASE_DIR=~ubuntu echo $BASE_DIR ubuntu 계정의 홈 디렉터리였다. 사용자 이름 앞에 ~ 기호를 붙이면 해당 사용자의 홈 디렉터리를 의미한다. ~root인 경우 root 사용자의 홈 디렉터리를 의미한다.

Linux 2022.09.30