Python zip에서 데이터가 사라질 때: strict=True와 zip_longest 선택
이름 세 개와 점수 두 개를 zip으로 묶었는데 결과가 두 개만 남았다면, 기본 동작을 확인하세요. 길이가 같아야 하는 입력은 zip(..., strict=True)로 검사하고, 짝이 없는 항목도 보존해야 한다면 zip_longest로 누락을 표시합니다.Python 3.12.14의 표준 라이브러리에서 검증했습니다. strict 인수는 Python 3.10부터 지원합니다. 같은 순서로 대응하는 유한 자료를 예로 들며, 키 기반 결합은 별도 문제입니다.1. 기본 zip은 짧은 입력에서 멈춥니다names = ["A", "B", "C"]scores = [80, 90]print(list(zip(names, scores)))[('A', 80), ('B', 90)]C에 대응할 점수가 없어 세 번째 쌍이 나오지 않습니..
2026. 10. 7.
Python bisect로 중복값 개수 찾기: 왼쪽·오른쪽 경계와 범위 검색
정렬된 리스트에서 값 2가 몇 번 나오는지 찾는다면, 일치하는 위치 한 개만 찾는 이진 탐색으로는 부족합니다. bisect_left로 시작 경계를, bisect_right로 끝 경계를 찾고 두 값의 차이를 구하면 중복 개수를 얻습니다.Python 3.12.14에서 실행했습니다. 표준 라이브러리만 사용하며 리스트가 오름차순으로 정렬되어 있다는 전제가 필요합니다.1. 경계 두 개로 중복 개수를 구합니다from bisect import bisect_left, bisect_rightvalues = [1, 2, 2, 2, 4, 7]x = 2left = bisect_left(values, x)right = bisect_right(values, x)print(left, right)print(values[left:ri..
2026. 10. 6.