본문 바로가기

오늘도 하나씩, 쉽게 풀어봅니다.

작은 시행착오도,
다음에 꺼내 볼 수 있는 기록으로.

전체 글 111

Python sort 결과가 None일 때: sorted와 원본 리스트 변경을 구분하세요

정렬한 결과를 저장했는데 None이 나왔다면 result = scores.sort()처럼 작성했는지 확인하세요. list.sort()는 원래 리스트의 순서를 바꾸고 None을 반환합니다. 원본을 남기면서 정렬된 새 리스트가 필요하면 sorted()를 사용합니다.아래는 Windows Python 3.14.0에서 직접 실행한 예제입니다. 파일을 읽거나 기존 데이터를 지우지 않고 작은 숫자 리스트만 바꿉니다. 도해는 실제 실행 결과를 설명하도록 편집한 그림이며 프로그램 화면 캡처가 아닙니다.위 그림에서 sort의 화살표는 원래 리스트로 돌아옵니다. sorted의 화살표는 새 결과 리스트로 이어집니다. 두 함수 이름보다 ‘원래 순서가 필요한가’를 먼저 생각하면 선택하기 쉽습니다.1. Python 입력 위치와 첫..

Python heappushpop·heapreplace 차이: 넣은 값이 힙에 남지 않는 이유

heappushpop과 heapreplace는 모두 힙에서 값 하나를 반환하지만 순서가 다릅니다. 새로 넣을 값이 현재 최소값보다 작을 때 차이가 또렷합니다. 작은 값3을 넣어도 결과 힙에3이 남지 않는 이유를 같은 입력으로 비교합니다.실행 준비Windows CPython 3.14.0에서 아래 heapq_demo.py를 실제 실행했습니다. 새 폴더에 코드를 저장하고 PowerShell에서 python --version, python heapq_demo.py를 입력하세요. 표준 라이브러리 heapq를 쓰며, 여기서는 최소 힙 기능만 사용합니다. 목록의 첫 항목이 최소값이라는 조건과 목록 전체가 정렬됐다는 조건을 구분합니다.예시 1. heapify는 원본 목록을 바꾼다[8,3,5]에 heapify를 실행하면..

Python bisect_left·right: 삽입 위치와 실제 값 찾기를 구분하세요

bisect는 정렬된 목록에서 값을 넣을 경계를 구합니다. 반환된 번호가 있다고 해서 그 값이 실제로 들어 있다는 뜻은 아닙니다. 중복 값의 왼쪽·오른쪽 경계와 존재 검사를 나눠야 마지막 위치에서 IndexError가 나는 일을 막을 수 있습니다.실행 준비Windows CPython 3.14.0에서 아래 코드를 한 파일로 실행했습니다. 표준 라이브러리만 사용합니다. 새 작업 폴더에 bisect_demo.py로 저장하고 PowerShell에서 해당 폴더로 이동한 뒤 python --version과 python bisect_demo.py를 실행하세요. >>>가 보이면 Python 대화형 창이므로 quit()로 나온 뒤 터미널에서 명령을 입력합니다.예시 1. 중복된 70의 시작과 끝 찾기scores는 [60,..

Python pathlib 확장자 바꾸기: suffix·suffixes·stem과 실제 이름 변경의 차이

archive.tar.gz의 stem은 archive가 아니라 archive.tar입니다. pathlib의 suffix는 마지막 확장자 하나, suffixes는 점으로 나뉜 확장자 목록을 보여 줍니다. 이름 문자열을 다루는 것과 디스크의 파일을 바꾸는 것도 구분해야 합니다.Python 3.12.8에서 PureWindowsPath로 실제 파일을 만들지 않고 아래 예제를 실행했습니다. 파일 이동·이름 변경 명령은 실행하지 않습니다. 이 글의 결과는 이 버전 기준이며, Python 3.14 이후 일부 끝점 처리 변경과 혼동하지 않도록 끝에 점만 있는 이름은 예제에서 제외했습니다.1. Python 입력 위치부터 맞추기시작 메뉴나 기존 터미널에서 사용하려는 Python을 실행해 >>> 입력 위치를 엽니다. 아래 ..

Python 중복 제거 순서 유지: dict.fromkeys와 해시 불가능한 항목 처리

코드 목록에서 먼저 나온 순서는 유지하고 같은 코드를 한 번만 남기려면 list(dict.fromkeys(codes))를 사용할 수 있습니다. 순서 보장은 Python 3.7 이상을 기준으로 합니다. 문자열의 표기가 다른 경우와 사전처럼 해시할 수 없는 항목은 별도로 처리해야 합니다.한 파일로 실행하기아래 코드는 Windows CPython 3.14.0에서 실제 실행했습니다. 새 폴더에 fromkeys_demo.py로 저장한 뒤 PowerShell에서 python --version을 확인하고 python fromkeys_demo.py로 실행합니다. 각 예시는 같은 파일에서 위에서 아래로 실행합니다.예시 1. 첫 등장 순서 유지P-02, P-01, P-02, P-03, P-01 순서의 codes에서 키를 ..

Python Counter 차감: 빼기 연산에서 0·음수가 사라지는 이유

재고에서 사용량을 뺐는데 0과 음수가 사라진다면 Counter의 두 차감 방식을 구분하세요. a - b는 양수인 항목만 남긴 새 Counter를 만들고, subtract는 대상 Counter를 직접 바꾸면서 0과 음수도 남깁니다. 부족 수량을 찾는 일에는 이 차이가 중요합니다.실행 위치와 준비Windows의 CPython 3.14.0에서 아래 전체 코드를 한 파일로 실행했습니다. 표준 라이브러리만 사용합니다. 새 폴더에 counter_demo.py로 저장하고 PowerShell에서 해당 폴더로 이동한 뒤 python --version, python counter_demo.py를 차례로 실행하세요. >>>가 보이면 Python 대화형 창이므로 quit()로 나온 뒤 터미널에서 실행합니다.예시 1. 양수 잔..

PowerShell where와 where.exe 차이: Get-Command -All로 실행 대상을 확인하세요

PowerShell에서 where python을 입력했는데 예상한 실행 파일 경로가 나오지 않는다면, 먼저 where가 어떤 종류의 명령인지 확인하세요. Windows PowerShell과 PowerShell에서는 where가 Where-Object의 별칭인 경우가 있습니다. Windows 실행 파일 검색 도구를 쓰려면 where.exe로 이름을 구분합니다.Windows의 PowerShell 7.6.5에서 아래 읽기 예제를 직접 실행했습니다. 환경변수·별칭을 변경하거나 프로그램을 설치하는 실습이 아닙니다. cmd.exe 경로는 PC에 따라 달라질 수 있으며, 다른 운영체제에 Windows의 where.exe가 있다고 가정하지 않습니다.1. 먼저 PowerShell인지 확인하기시작 메뉴에서 PowerShe..

Python venv 확인 방법: 활성화 표시보다 실행 파일과 pip 경로를 보세요

가상환경 폴더를 만들었어도 지금 실행하는 Python이 그 환경의 실행 파일인지 확인해야 합니다. sys.executable과 pip의 설치 위치를 같은 실행 파일로 확인하면 다른 Python에 패키지를 설치하는 실수를 줄일 수 있습니다. 명령줄 앞의 (.venv) 표시만으로 판단하지 마세요.Windows PowerShell에서 기존 설치된 Python 3.12.8로 새 가상환경을 만들고 pip 24.3.1의 위치를 확인했습니다. 외부 패키지 다운로드·전역 PATH·실행 정책 변경 없이 재현한 예시입니다. Python과 venv가 설치된 환경을 전제로 하며 설치 자체를 대신 다루지는 않습니다.1. Python과 Windows 실행기를 구분PowerShell을 열어 먼저 다음 명령을 확인합니다. Windo..

Git diff가 비어 있을 때: 작업 파일·스테이징·HEAD 비교를 구분하세요

파일을 저장했는데 git diff가 비어 있다고 변경이 사라진 것은 아닙니다. 기본 diff는 작업 파일과 스테이징 영역을 비교합니다. 이미 add한 변경은 git diff --staged에서 확인해야 합니다. 파일 하나도 add 뒤 다시 고치면 두 비교에 동시에 나옵니다.Windows PowerShell과 Git 2.52.0.windows.1에서 새 임시 저장소로 검증했습니다. 이 글의 실습은 기존 프로젝트·원격 저장소·사용자 전역 설정을 변경하지 않습니다. Git이 설치되어 있고 git --version이 실행되는 환경을 전제로 합니다.1. 비교하는 세 상태를 먼저 구분하기첫 도해의 왼쪽 HEAD는 마지막 커밋, 가운데 인덱스는 다음 커밋을 위해 add한 내용, 오른쪽 작업 파일은 현재 디스크에 저장..

PowerShell Get-ChildItem에서 파일만 보기와 숨김 파일 포함하기

확장자가 .log로 끝나는 폴더와 숨김 로그가 함께 있으면 이름만으로 목록을 걸러서는 원하는 결과를 얻기 어렵습니다. 파일 여부는 -File, 숨김 항목을 포함할지는 -Force로 각각 정합니다.연습용 폴더에 세 가지 상태 만들기Windows의 PowerShell 7.6.5에서 실행했습니다. 아래 코드는 임시 위치에 새 폴더를 만들고 그 안의 예제 파일 하나만 숨김으로 표시합니다. 첫 결과와 두 번째 결과를 같은 창에서 비교하세요.$p = Join-Path $env:TEMP ('jh-' + [guid]::NewGuid())New-Item -Type Directory $p | Out-NullNew-Item -Type Directory (Join-Path $p 'archive'), (Join-Path $p ..

728x90
반응형
SMALL
728x90
반응형
LIST