본문 바로가기

파이썬 기초

[파이썬 기초] range()를 써야 하는 이유? slicing과 비교하며 쉽게 배워보기

1. range와 slicing?

range와 slicing은 '어디서부터 어디까지'라는 특정 범위를 지정할 때 사용되요. 

하지만 사용 방법과 출력 방식이 다르기 때문에 어떤 부분이 다른가 살펴보면 좋을 것 같습니다.

 

2. range와 slicing의 차이

 

1) 사용하는 괄호 그리고 구분 방법

  • range(a,b,c) - 소괄호()를 사용하고, 값 사이를 ,(콤마)로 구분합니다.
  • slicing[a:b:c] - 대괄호[]를 사용하고, 값 사이를 :(클론)로 구분합니다. 

2) 출력 방식의 차이

range와 slicing 예시

  • range()는 직접 출력시 range(0,5)처럼 숫자 목록을 볼 수 없습니다.
  • slicing은 리스트에서 특정 범위를 잘라서 바로 숫자 목록을 볼 수 있습니다.

3. range는 왜 list로 변환해야 할까요?

range()의 출력이 바로 숫자 리스트처럼 보이지 않는 이유는 이터레이터(iterator)형태를 갖고 있기 때문입니다.

 

*이터레이터는 무엇일까?

메모리를 절약하면서 필요할 때만 값을 생성하기 위해 만들어진 객체 입니다. 

print(range(0,5)) #range(0,5)
print(list(range(0,5))) #[0,1,2,3,4]

 

 *range는 순서를 갖는 list로 변환할 때 가장 자연스럽지만, tuple, set, dict등 다른 자료형으로도 변환이 불가한 것은 아닙니다.

 

4. range는 반복문에서 특정 횟수만큼 반복할 때 자주 사용된다고 해요.

range는 반복문에서 코드를 간결화 시켜 주고, 메모리 효율 측면에도 좋기 때문에 사용되고 있어요.

같은 메시지를 정해진 숫자만큼 반복하거나, 리스트 등의 데이터를 가공할 때에도 사용됩니다.

 

코딩을 하면서 range를 만난다면 왜 사용 되었을까 고민해보고 우리가 코딩할 때에도 사용해 보려고 해보면 좋을 것 같아요:)

 

읽어주셔서 감사합니다.

반응형