- [BW 12] 스트라이드와 슬라이스를 한 식에 함께 사용하지 말라2024년 10월 22일
- 31514
- 작성자
- 2024.10.22.:10
스트라이드는 일정한 간격을 두고 슬라이싱을 할 수 있는 특별한 구문이다.
arr = ['red', 'orange', 'yellow', 'green', 'blue'] odds = arr[::2] evens = arr[1::2] print(odds) print(evens) >>> ['red', 'yellow', 'blue'] ['orange', 'green']
하지만 스트라이드는 종종 예기치 못한 동작이 일어나서 버그를 일으킬 수 있다.
유니코드 문자열을 UTF-8로 인코딩하고 스트라이드를 사용해 역으로 뒤집은 뒤, 다시 디코딩을 해보면 어떨까?
word = '한글은 위대해' x = word.encode('utf-8') y = x[::-1] z = y.decode('utf-8') print(x) print(y) print(z) >>> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb4 in position 0: invalid start byte
에러가 발생한다.
그리고 arr[-2:2:-2] 같이 슬라이싱 구문에 스트라이딩까지 들어가서, 각괄호안에 수가 세 개나 들어있으면 읽기 어려워진다.
'Book > 파이썬 코딩의 기술' 카테고리의 다른 글
[BW 14] 복잡한 기준을 사용해 정렬할 때는 key 파라미터를 사용하라 (1) 2024.10.22 [BW 13] 슬라이싱보다는 나머지를 모두 잡아내는 언패킹을 사용하라 (0) 2024.10.22 [BW 11] 시퀀스를 슬라이싱하는 방법을 익혀라 (0) 2024.10.22 [BW 10] 대입식을 사용해 반복을 피하라 (0) 2024.10.22 [BW 9] for나 while 루프 뒤에 else 블록을 사용하지 말라 (0) 2024.10.22 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)