Batter way 12

매일 공부(ML)·2022년 2월 5일
0

파이썬 코딩의 기술

목록 보기
11/27

스트라이드와 슬라이스를 한 식에 함께 사용하지 말라

  • 스트라이드(Stride)

    • 파이썬은 리스트[시작:끝:증가값]으로 일정한 간격을 두고 슬라이싱
    • 증가값을 이용하여 원하는 간격(등차수열로 얻기 가능)
x = ['빨강', '주황', '노랑', '초록', '파랑', '자주']

odds = x[::2]
evens = x[1::2]
print(odds) # ['빨강', '노랑', '파랑']
print(evens) # ['주황', '초록', '자주'] 

  • 문자열을 역으로 뒤집기 by -1을 증가값으로 사용

    • 유니코드 문자열 가능
    • UTF-인코딩한 문자열에선 안됨
x = b'mongoose'
y = x[::-1]
print(y) # b'esoognom'
  • 스트라이딩한 다음 슬라이싱하면 데이터를 한 번 얕게 복사하게 된다.

    • 시관 메모리를 감당할 수 없다면 itertools 내장 모듈의 islice메서드 고려
    • 시작, 끝, 중간값에 음수 사용 불가
y = [x::2] # ['a','c','e','g']
z = y[1:-1] # ['c','e']

총 정리

  • 슬라이스에 시작,끝,증가값을 함께 지정하면 코드의 의미 혼동

  • 시작이나 끝 인덱스가 없는 슬라이스를 만들 때 양수 증가값 사용

  • 한 슬라이스 안에서 시작,끝,증가값 함께 사용하지 말라

    • 만약 모두 써야 한다면, 두 번은 대입 사용하거나 itertools내장 모듈의 islice사용
profile
성장을 도울 아카이빙 블로그

0개의 댓글