반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 자바스크립트
- CSS
- 자바문법
- 정규식
- string
- SpringBoot
- Array
- javascript
- junit5
- 스프링부트
- 인텔리제이
- Java
- math
- 단위테스트
- html
- 문자열
- ArrayList
- 자바
- junit
- Visual Studio Code
- Eclipse
- 배열
- 테스트자동화
- java테스트
- list
- vscode
- IntelliJ
- js
- input
- HashMap
Archives
- Today
- Total
어제 오늘 내일
[Python 기초] "원하는 곳만 골라서 반전!" 리스트 부분 슬라이싱 및 뒤집기 본문
리스트의 전체가 아니라, 예를 들어 "3번 인덱스부터 7번 인덱스까지만 거꾸로 뒤집고 싶다"면 어떻게 해야 할까요? 파이썬의 슬라이싱 규칙을 정확히 이해하면 아주 간단하게 해결됩니다.
1. 기본 원리: 부분 추출 후 뒤집기
가장 먼저 특정 구간을 슬라이싱으로 뽑아낸 뒤, 그 결과에 다시 뒤집기([::-1])를 적용하는 방식입니다.
📌 예제 코드: 인덱스 2번부터 5번 직전까지 뒤집기
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 1. 2번 인덱스부터 5번 직전(4번)까지 추출: [2, 3, 4]
sub_list = numbers[2:5]
# 2. 추출한 부분만 뒤집기: [4, 3, 2]
reversed_sub = sub_list[::-1]
print(reversed_sub)
# 출력: [4, 3, 2]
2. 고급 기술: 원본의 특정 구간만 '교체'하기
단순히 잘라서 출력하는 게 아니라, 원본 리스트 내의 특정 구간만 순서를 뒤집어서 다시 끼워 넣고 싶을 때 사용하는 실전 기술입니다. 리스트 슬라이싱의 '치환' 기능을 활용합니다.
📌 예제 코드: 원본 리스트의 일부만 반전시키기
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
# 인덱스 1번('b')부터 4번 직전('d')까지의 구간을
# 해당 구간을 뒤집은 값으로 치환합니다.
alphabet[1:4] = alphabet[1:4][::-1]
print(alphabet)
# 출력: ['a', 'd', 'c', 'b', 'e', 'f', 'g']
# 설명: 'b', 'c', 'd' 구간이 'd', 'c', 'b'로 바뀌었습니다.
3. 더 정교한 조절: Step(보폭) 활용하기
슬라이싱의 세 번째 인자인 step을 활용하면 훨씬 정교한 작업이 가능합니다.
📌 예제 코드: 전체 리스트에서 2칸씩 건너뛰며 뒤집기
data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 처음부터 끝까지 가되, 역순(-1)으로 2칸씩(-2) 건너뜁니다.
stepped_rev = data[::-2]
print(stepped_rev)
# 출력: [9, 7, 5, 3, 1]
💡 실전 팁: 슬라이싱 뒤집기 공식 정리
이 공식만 기억하면 어떤 구간이든 자유자재로 요리할 수 있습니다.
list[start:stop]:start부터stop-1까지 자르기list[start:stop][::-1]: 해당 구간을 잘라서 뒤집기list[start:stop] = list[start:stop][::-1]: 해당 구간만 뒤집어서 원본에 덮어쓰기list[stop-1 : start-1 : -1]: 슬라이싱 한 번으로 특정 구간을 역순으로 가져오기 (비어있는start값이 있을 때 주의가 필요하여 위 방법을 더 추천합니다.)
📝 마치며
특정 구간 슬라이싱은 데이터를 필요한 만큼만 떼어내어 가공할 때 매우 유용합니다. 특히 이미지 데이터의 픽셀을 반전시키거나, 문자열의 특정 부분만 암호화할 때 자주 사용되는 기술이죠.
반응형
'IT > Python' 카테고리의 다른 글
| [Python 기초] "거꾸로 줄을 서시오!" 파이썬 리스트 뒤집기 3가지 방법 (0) | 2026.05.18 |
|---|---|
| [Python 기초] "미리 빈 칸을 만들어두자!" 파이썬 리스트 크기 지정과 초기화 (0) | 2026.05.18 |
| [Python 기초] "이 바구니에 데이터가 몇 개 들어있지?" 파이썬 리스트 길이 구하기 (len) (1) | 2026.05.17 |
| [Python 실전 팁] "누가 겹치고 누가 빠졌지?" 파이썬 리스트 교집합, 차집합 비교하기 (1) | 2026.05.14 |
| [Python] "중복 데이터, 대체 어디 숨어있어?" 파이썬 리스트 중복 인덱스(위치) 찾기 완벽 가이드 (0) | 2026.05.12 |
Comments
