실버를 위한 코딩 248

리스트 메서드, remove(), pop(), clear()

리스트에서 요소를 삭제하거나 비우는 데 사용되는 주요 메서드인 remove(), pop(), clear()리스트에서 요소를 삭제할 때는 remove(), pop(), clear() 메서드를 사용합니다. remove(x)는 값이 x인 첫 항목을 삭제하고, pop()은 마지막 요소를 꺼내며, clear()는 리스트를 완전히 비웁니다.✅ 삭제 관련 리스트 메서드1. remove(x)값이 x인 첫 번째 항목을 삭제합니다.값이 없으면 ValueError 발생.s = [1, 2, 3, 2, 4]s.remove(2)print(s) # [1, 3, 2, 4]※ 두 번째 2는 남아 있습니다.2. pop()마지막 요소를 꺼내서 반환하며 리스트에서 제거합니다.s = [1, 2, 3]x = s.pop()print(x) #..

리스트의 주요 메서드 작동 방식

올려주신 코드 실행 결과는 리스트의 주요 메서드 작동 방식을 잘 보여주는 예입니다. 아래에 각 단계별로 설명드리겠습니다.📌 코드 분석s = [1, 2, 3]리스트 s는 [1, 2, 3]으로 시작합니다.✅ append(5)s.append(5) → [1, 2, 3, 5]리스트 맨 끝에 5 추가✅ insert(3, 4)s.insert(3, 4) → [1, 2, 3, 4, 5]인덱스 3 위치에 4를 삽입 (기존 5는 뒤로 밀림)✅ index(3) / index(4)s.index(3) → 2s.index(4) → 3해당 값이 처음 등장하는 인덱스를 반환✅ reverse()s.reverse() → [5, 4, 3, 2, 1]리스트 순서를 뒤집음✅ sort()s.sort() → [1, 2, 3..

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

중첩 리스트와 얕은복사와 깊은복사중첩 리스트는 리스트 안에 또 다른 리스트가 포함된 구조입니다. 얕은 복사는 바깥 리스트만 복사하고 내부 리스트는 원본과 공유합니다. 반면 깊은 복사는 모든 계층의 리스트를 새로 만들어 원본과 완전히 독립된 구조를 만듭니다.📌 코드 요약: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], ..

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

리스트 안에 리스트가 포함될 경우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]가 출력됩니다. 결과값이 같지만 객체가 어디에 소속되어 있느냐에 따라 표현되는 형식은 다릅니다.

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

✅ 다음은 어떤 코드인가요?이 코드는 두 숫자를 더하거나 빼는 함수를 만들고,어떤 연산을 할지 숫자 하나로 선택해서 실행하는 방식입니다.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) : 이건..

파이썬 삼항 연산자(ternary operator)

파이썬 삼항 연산자(ternary operator)파이썬에서 삼항 연산자(ternary operator)는 조건에 따라 값을 선택하는 간결한 표현식입니다. 정식 명칭은 조건 표현식(conditional expression)입니다.✅ 기본 문법 if else 동작 원리이 True이면 이 선택됩니다.이 False이면 가 선택됩니다.✅ 예제1. 숫자 비교 예시a = 10result = "크다" if a > 5 else "작다"print(result) # 출력: 크다2. 짝수/홀수 판단num = 7msg = "짝수" if num % 2 == 0 else "홀수"print(msg) # 출력: 홀수3. 함수 안에서 사용def get_grade(score): return "합격" if score >= 60..

파이썬 자료형의 특징

파이썬 자료형의 특징파이썬은 동적 타이핑 언어로 변수 선언 시 자료형을 지정하지 않아도 됩니다. 모든 자료형이 객체이며, 가변형과 불변형으로 나뉘고 다양한 내장 자료형과 형 변환 기능을 지원합니다. 파이썬의 자료형은 다음과 같은 특징을 가집니다.동적 타입(dynamic typing)변수에 값을 할당할 때 자료형을 명시하지 않아도 자동으로 인식합니다.객체 지향 기반모든 자료형(숫자, 문자열, 리스트 등)은 객체이며, 메서드와 속성을 가집니다.다양한 내장 자료형 제공숫자형: int, float, complex시퀀스형: list, tuple, range, str집합형: set, frozenset매핑형: dict불리언형: boolNone형: NoneType가변형(mutable)과 불변형(immutable)가변형..

출력 파이썬 코드, print와 pprint

출력 파이썬 코드, print와 pprintprint()는 한 줄로 출력하고, pprint.pprint()는 중첩 구조를 보기 쉽게 들여쓰기하여 출력합니다. import pprintcomplicated = ['spam', (1, 2, 3), ('ham', 'egg', ('ab', 'cd', ('abc', 'def')))]complicated = complicated * 3print(complicated)pprint.pprint(complicated)코드 설명:리스트 complicated 생성:문자열, 튜플, 중첩 튜플로 구성된 복잡한 구조입니다.['spam', (1, 2, 3), ('ham', 'egg', ('ab', 'cd', ('abc', 'def')))]곱셈 연산 * 3:리스트 complicated..