반응형
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]가 출력됩니다.
결과값이 같지만 객체가 어디에 소속되어 있느냐에 따라 표현되는 형식은 다릅니다.
'실버를 위한 코딩 > 파이썬 연습' 카테고리의 다른 글
얕은 복사(shallow copy)와 깊은 복사(deep copy) (1) | 2025.05.06 |
---|---|
리스트 안에 리스트가 포함될 경우 (1) | 2025.05.05 |
튜플을 활용한 파이썬 함수 호출 (1) | 2025.04.21 |
파이썬 프로젝트 패키지 관리와 의존성 관리, Poetry란? (0) | 2025.04.08 |
웹 기반 사용자 인터페이스(UI), Swagger (0) | 2025.04.03 |