Slice / 슬라이싱
- 시작 인덱스 또는 끝 인덱스 또는 step을 넣지 않는다면, 전체를 뜻한다.
num = [1,2,3,4,5]
print(num[::]) # [1,2,3,4,5] / 전체
print(num[2::] # [3,4,5] / index 2부터 끝
# step의 의미 => 증가폭
num = [1,2,3,4,5,6,7,8,9,10]
num[1::2] # index 1번째부터 끝까지 2씩 증가하며 slice
print(num[1::2]) # [2, 4, 6, 8, 10]
- -index는 끝 인덱스부터 차례대로 -1 -2 -3 ... 인덱스 값을 뜻하며 전체 길이를 알 수 없을때 용이나게 쓰인다.
num = [1, 2, 3, 4, 5]
num[-1] # 마지막 요소인 5
print(num[-1]) # 5
num[1:-1] # index 1번째 부터 index -2번째 까지
print(num[1:-1]) # [2, 3, 4]
# -step 이해하기 => 요소를 뒤에서부터 감소폭만큼 감소하면서 요소를 가져옴
num[::-2] # 끝 인덱스부터 -2만큼 증가하여 slice함 => 거꾸로 2칸씩
print([::-2]) # [5, 3, 1]
num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
num[2:-2] # index 2인 3부터 index -3인 8까지 slice
print(num[2:-2]) # [3, 4, 5, 6, 7, 8]
num[2:-2:-2]
# 끝 인덱스인 -2는 양수로 고치면 index 8이고 시작 인덱스보다 끝 인덱스가 크기때문에
# -2만큼 거꾸로 감소할 수 있는 범위가 없다. 그러므로 빈 객체
print(num[2:-2:-2]) # []
num[-2:2:-2]
# 시작 인덱스가 끝 인덱스보다 뒤에 있으므로 요소를 뒤에서부터 감소폭 만큼 감소할 수
# 있다. 거꾸로 2칸씩 건너뛰면서 요소를 가져온다.
print(num[-2:2:-2]) # [9, 7, 5]
- num[1:-1]일때 끝 인덱스는 포함하지 않기 때문에 -2 index까지다
- num[::-1] 일 땐 전체 리스트나 문자열을 뒤집어 -1만큼 감소하면서 요소를 가져온다
reversed
# reversed 이용하기
print(reversed(str)) # <reversed object at 0x0000026F8AFFC5B0>
print(''.join(reversed(str)))
- reversed는 객체로 반환하기 때문에 join을 이용해 문자열로 형변환 시켜줘야 한다.
for문 이용하기
# for 이용하기
result_str = ""
for char in str:
result_str = char + result_str
print(result_str)
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] swap, 두 개의 변수를 교환하는 방법 (0) | 2024.10.23 |
---|---|
[Python] 연산자 (0) | 2024.10.22 |
[Python] f-string (문자열 포메팅 방법 3) (0) | 2024.10.08 |
[Python] % 서식 기호 (문자열 포메딩 방법 2) (0) | 2024.10.08 |
[Python] format 함수 (문자열 포메팅 방법 1) (0) | 2024.10.08 |