전체 글 392

중첩 리스트와 얕은복사와 깊은복사

중첩 리스트와 얕은복사와 깊은복사중첩 리스트는 리스트 안에 또 다른 리스트가 포함된 구조입니다. 얕은 복사는 바깥 리스트만 복사하고 내부 리스트는 원본과 공유합니다. 반면 깊은 복사는 모든 계층의 리스트를 새로 만들어 원본과 완전히 독립된 구조를 만듭니다.📌 코드 요약:L = [1, ['a', ['x', 'y'], 'b'], 3]L은 중첩 리스트를 포함하는 구조입니다.구성은 다음과 같습니다:L[0] = 1 L[1] = ['a', ['x', 'y'], 'b'] L[2] = 3📌 인덱싱 흐름:L[1]→ ['a', ['x', 'y'], 'b']L[1][1]→ ['x', 'y'](위 리스트의 두 번째 요소)L[1][1][1]→ 'y'(그 리스트에서 인덱스 1, 즉 'y'를 추출)🧠 핵심 개념:이중, 삼중 ..

얕은 복사(shallow copy)와 깊은 복사(deep copy)

얕은 복사(shallow copy)와 깊은 복사(deep copy)파이썬에서 얕은 복사(shallow copy)와 깊은 복사(deep copy)는 자료구조, 특히 리스트, 딕셔너리 등 변경 가능한 객체를 다룰 때 매우 중요한 개념입니다. 아래에서 차이점을 예시와 함께 설명드리겠습니다.🔹 1. 얕은 복사 (Shallow Copy)얕은 복사는 가장 바깥쪽 객체만 새로 복사하고, 내부에 포함된 객체는 원본과 동일한 참조를 공유합니다.예시:import copyoriginal = [[1, 2], [3, 4]]shallow = copy.copy(original)이때 구조는 다음과 같습니다:original과 shallow는 서로 다른 리스트이지만,original[0], original[1]은 shallow[0], ..

리스트 내포와 조건문을 활용한 곱셈 필터링 실습

리스트 내포와 조건문을 활용한 곱셈 필터링 실습파이썬에서는 리스트 내포(List Comprehension)를 이용하면 복잡한 반복문과 조건문을 간결하게 표현할 수 있습니다.이번 실습은 세 수 i, j, i * j로 구성된 튜플을 생성하되, 특정 조건을 만족하는 경우만 리스트에 포함시키는 예제입니다.예제 설명L = [(i, j, i * j) for i in range(2, 100, 2) for j in range(3, 100, 3) if (i + j) % 7 == 0]구성 설명:i: 2부터 99까지 2씩 증가하는 짝수j: 3부터 99까지 3씩 증가하는 홀수i * j: 곱셈 결과조건: (i + j) % 7 == 0→ i + j의 합이 7의 배..

리스트 안에 리스트가 포함될 경우

리스트 안에 리스트가 포함될 경우s = [1, 2, 3]리스트 s를 정의합니다.t = ['begin', s, 'end']리스트 t를 정의합니다.여기서 중요한 점은 s의 값을 복사한 것이 아니라 s 자체(객체의 참조)를 넣은 것입니다.결과적으로 t는 ['begin', [1, 2, 3], 'end']입니다.t[1][1]t[1]은 [1, 2, 3]이고, 그 안의 1번 인덱스 값은 2입니다.결론출력된 값은 2입니다.이 예제는 리스트 안에 리스트가 포함될 경우의 참조 방식과 이중 인덱싱을 잘 보여줍니다.

list에서 range와의 미묘한 관계

list에서 range와의 미묘한 관계a = range(4)a는 range(0, 4)로, 이 자체는 0, 1, 2, 3이라는 값을 생성하지만 아직 리스트는 아님입니다.즉, a는 range 객체입니다.a[::2]이는 슬라이싱 연산으로, range(0, 4) 중에서 인덱스를 2씩 건너뛴 요소들을 의미합니다.결과는 range(0, 4, 2)로 출력됩니다.핵심 설명range 객체는 슬라이싱 시에도 새로운 range 객체를 반환합니다.따라서 a[::2]는 실제로는 0, 2 값을 생성하지만, 출력 형태는 range(0, 4, 2)로 보입니다.실제 값이 궁금하다면?list(a[::2])이렇게 하면 실제 리스트 [0, 2]가 출력됩니다. 결과값이 같지만 객체가 어디에 소속되어 있느냐에 따라 표현되는 형식은 다릅니다.

Python 표준 라이브러리의 모듈, os와 sys의 차이

Python 표준 라이브러리의 모듈, os와 sys의 차이import os와 import sys는 모두 Python 표준 라이브러리의 모듈을 불러오는 방식이며, 운영체제 정보 접근과 파이썬 런타임 환경 제어라는 서로 다른 목적을 갖고 있습니다.import os — 운영체제 기능 인터페이스os 모듈은 Python에서 운영체제(OS)의 기능에 접근할 수 있도록 해주는 모듈입니다. 주로 파일, 디렉터리, 환경 변수 등을 다룰 때 사용됩니다.주요 기능 기능 예시 설명 현재 디렉터리 확인os.getcwd()작업 디렉터리 반환디렉터리 변경os.chdir('/home/user')디렉터리 이동파일/디렉터리 생성os.mkdir('logs')새 디렉터리 생성경로 결합os.path.join(a, b)경로 안정적으로 연결..

str.format() 방식과 f-string 방식의 비교 설명

str.format() 방식과 f-string 방식의 비교 설명다음은 str.format() 방식과 Python 3.6 이상에서 사용 가능한 f-string 방식의 비교 설명입니다. 두 방식은 유사한 목적을 갖지만 사용성과 성능에서 차이가 있습니다.1. 기본 비교str.format() 방식name = "Alice"age = 30'{} is {} years old'.format(name, age)# 결과: 'Alice is 30 years old'f-string 방식 (Python 3.6+)name = "Alice"age = 30f'{name} is {age} years old'# 결과: 'Alice is 30 years old'✔️ f-string은 변수명을 직접 중괄호 {} 안에 넣어 가독성과 유지보..

Python str.format() 완전 분석

아래는 Python의 str.format() 메서드와 그 사용 방식에 대한 상세한 설명입니다. 이 설명은 특히 format() 메서드를 처음 접하거나, 다양한 표현 옵션을 이해하고자 하는 분들에게 도움이 됩니다.Python str.format() 완전 분석기본 구조'{} {}'.format(값1, 값2)문자열 안에 있는 중괄호 {}는 플레이스홀더(placeholder)입니다.format() 메서드는 괄호 안에 들어온 인자(값)를 순서대로 중괄호에 삽입합니다.개수와 순서가 맞아야 오류가 발생하지 않습니다.예제 분석>>> '{} {}'.format(23, 2.12345)'23 2.12345'{} → 첫 번째 값인 23이 들어감.{} → 두 번째 값인 2.12345가 들어감.결과적으로: '23 2.12345'..

성능이 개선된 Django 5.2

많이 달라진 Django 5.2Django 5.2는 2025년에 출시된 파이썬 기반 웹 프레임워크 Django의 최신 안정 버전 중 하나입니다. 이번 버전은 성능 개선과 보안 강화는 물론, 개발자 생산성을 높이는 기능들이 다수 포함되어 있습니다. 다음은 Django 5.2의 주요 특징과 변경 사항에 대한 소개입니다.Django 5.2 주요 특징1. 기본 Python 버전 요구사항 상향Django 5.2는 Python 3.10 이상을 요구합니다.더 이상 Python 3.9 이하 버전은 지원되지 않으며, 최신 Python 기능을 적극 활용합니다.2. 폼(Form) 관련 기능 개선Form과 ModelForm에서 동적으로 필드 정의가 더 쉬워졌습니다.Form.Meta.fields에 동적 리스트 생성이 가능해져,..

HTML5/HTML API 2025.04.24

튜플을 활용한 파이썬 함수 호출

✅ 다음은 어떤 코드인가요?이 코드는 두 숫자를 더하거나 빼는 함수를 만들고,어떤 연산을 할지 숫자 하나로 선택해서 실행하는 방식입니다.1단계: 더하기와 빼기 함수 만들기def add(a, b): return a + badd는 더하기 함수입니다.a와 b를 받아서 더한 값을 돌려줍니다.def sub(a, b): return a - bsub는 빼기 함수입니다.a와 b를 받아서 뺀 값을 돌려줍니다.2단계: 선택 숫자를 정합니다select = 0이 변수 select는 어떤 함수를 쓸지를 선택하는 번호입니다.0이면 첫 번째 함수(add)1이면 두 번째 함수(sub)3단계: 함수를 선택해서 계산합니다(add, sub)[select](2, 3)이 부분은 아주 중요한 포인트입니다!(add, sub) : 이건..