slice vs. islice 비교
slice
와 islice
는 모두 Python에서 제공하는 slicing 기능을 사용하는 함수입니다. 두 함수의 주요 차이점은 slice
는 일반적인 시퀀스에 사용되며, islice
는 iterator에 사용된다는 점입니다.
slice
:slice
는 리스트, 문자열, 튜플 등과 같은 일반적인 시퀀스에 사용됩니다.slice
는 시퀀스의 일부를 새로운 시퀀스로 반환합니다.slice
는 전체 시퀀스를 메모리에 로드해야 하므로 큰 시퀀스에는 비효율적일 수 있습니다.slice
객체를 사용하는 것이 좋은 경우는 프로그래밍적으로 슬라이스를 조작해야 할 때입니다. 예를 들어, 슬라이스의 시작, 끝, 단계 크기를 변수로 설정하거나 변경해야 하는 경우에slice
객체를 사용할 수 있습니다.
my_list = [0, 1, 2, 3, 4, 5] sliced = my_list[slice(1, 4)] sliced02 = my_list[1:4] print(sliced) # 출력: [1, 2, 3]
islice
:islice
는itertools
모듈의 일부로, iterator에 사용됩니다.islice
는 iterator의 일부를 새로운 iterator로 반환합니다.islice
는 필요한 요소만 메모리에 로드하므로 큰 시퀀스에 효율적입니다.
from itertools import islice my_iter = iter([0, 1, 2, 3, 4, 5]) sliced = islice(my_iter, 1, 4) print(list(sliced)) # 출력: [1, 2, 3]
위의 예제에서 slice
는 리스트의 일부를 새로운 리스트로 반환하고, islice
는 iterator의 일부를 새로운 iterator로 반환합니다.