ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 리스트 인덱싱과 슬라이싱
    개발 프로세스/Back-end 2021. 7. 14. 02:24

    인덱싱(indexing)이란?


    인덱싱이란 리스트에 있는 값에 접근하기 위해, 이 값의 상대적은 주소(offset)를 사용하는 것이다. 첫 번째 값을 0으로 했을 때 첫 번째 값과 얼마나 떨어져 있는지를 표현한 값으로 인덱스 주소, 인덱스값이라고 한다.

     

    * 리스트의 주소값은 왜 0부터 시작할까?

    1부터 시작하는 것보다 0부터 시작하면 이진수 관점에서 메모리를 절약할 수 있다. 또한 진수에서 00부터 사용할 수 있는 장점도 있다.

     

     

    cities = ['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']

     

    * cities 변수의 인덱스

    '서울' '부산' '인천' '대구' '대전' '광주' '울산' '수원'
    인덱스 0 1 2 3 4 5 6 7

     

    print(cities[0])
    print(cities[2])
    print(len(cities))

    >> 서울

    >> 인천

    >> 8

     

     

     

    슬라이싱(slicing)이란?


    리스트의 인덱스를 사용하여 전체 리스트에서 일부를 잘라내어 반환한다. 파이썬의 리스트에서 마지막 인덱스값은 출력되지 않는다. '마지막 인덱스 - 1'까지만 출력된다. 마지막 인덱스가 다음 리스트의 시작 인덱스가 되어 코드를 작성할 때 쉽게 이해할 수 있다는 장점이 있다.

     

    # cities >= 0 and cities < 5
    cities[0:5]

    >> ['서울', '부산', '인천', '대구', '대전']

     

     

    # cities >= 5
    cities[5:]

    >> ['광주', '울산', '수원']

     

     

     

     

     

    리버스 인덱스(reverse index)


    마지막 값부터 -1을 할당하여 첫 번째 값까지 역순으로 올라오는 방식이다.

     

    cities = ['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']
    print(cities[-8:])

    >> ['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']

     

     

    * cities 변수의 리버스 인덱스

    '서울' '부산' '인천' '대구' '대전' '광주' '울산' '수원'
    인덱스 -8 -7 -6 -5 -4 -3 -2 -1

     

     

     

     

    증가값 (step)


    슬라이싱에서는 시작 인덱스와 마지막 인덱스 외에 마지막 자리에 증가값을 넣을 수 있다.

     

    변수명[시작 인덱스 : 마지막 인덱스 : 증가값]

     

    cities = ['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']
    
    # 2칸 간격으로 출력/ 시작인덱스, 마지막인덱스가 비어있으므로 전체 출력
    cities[::2]
    
    # 역방향으로 출력/ 시작인덱스, 마지막인덱스가 비어있으므로 전체 출력
    cities[::-1]

    >> cities = ['서울', '인천', '대전', '울산']

    >> cities = ['수원', '울산', '광주', '대전', '대구', '인천', '부산', '서울']

    댓글

Designed by Tistory.