Python(파이썬) 기본 - 11. List(리스트)(2) - 리스트 인덱싱, 리스트 슬라이싱

아래 내용은 공부한 것을 정리하므로 틀린 내용이 포함되어 있을 수 있습니다.

1.list indexing(리스트 인덱싱)

  • 파이썬에서 리스트 인덱싱은 -(음수 인덱싱) 값도 허용합니다.
  • - 값은 역순으로도 인덱싱됩니다.
  • 다른 언어에서면 마지막열을 찾기위해 리스트의 길이를 구해서 찾아야 하지만, 파이썬은 -1만으로도 손쉽게 찾을 수 있습니다.
      >>> s = 'show how to index into sequences'.split()
      >>> s
      ['show', 'how', 'to', 'index', 'into', 'sequences']
      >>> s[0]
      'show'
      >>> s[5]
      'sequences'
      >>> s[-1]
      'sequences'
      >>> s[-2]
      'into'
      >>> s[-6]
      'show'
    

2. list slicing(리스트 슬라이싱)

  • 파이썬에서는 리스트를 자르는 특별한 문법을 제공합니다.
  • 사용법은 리스트변수[시작인덱스:종료인덱스:step] 입니다. 종료인덱스의 원소는 포함되지 않고 바로 앞 원소까지만 포함됩니다. step은 생략됩니다.
      >>> s[1:4]
      ['how', 'to', 'index']
    
  • 음수 인덱싱도 슬라이싱에 사용할 수 있습니다.
     >>> s[1:-1]
     ['how', 'to', 'index', 'into']
    
  • 시작인덱스부터 끝까지 포함시키려면 아래와 같이 입력합니다.
  • 리스트변수[시작인덱스:]
      >>> s[3:]
      ['index', 'into', 'sequences']
    
  • 반대로 처음부터 특정인덱스까지 가져오기 위해서는 아래와 같이입력합니다.
  • 리스트변수[:종료인덱스]
      >>> s[:3]
      ['show', 'how', 'to']
    
  • 위 두 예제를 합치면 처음 리스트 변수와 같습니다.
      >>> s[:3] + s[3:] == s
      True
    
  • 모든 값을 복사하여 새로운 list를 만들기 위해서는 아래와같이 입력합니다.
  • 리스트변수[:]
      >>> full_slice = s[:]
      >>> full_slice
      ['show', 'how', 'to', 'index', 'into', 'sequences']
    
  • 슬라이스를 통해 새롭게 만든 변수와 값은 같지만, 같은 변수는 아닙니다.
      >>> full_slice == s
      True
      >>> full_slice is s
      False
      >>> 
    
  • 리스트를 복사하는 방법에는 두가지 방법이 더 있습니다.
      >>> u = s.copy()
      >>> v = list(s)
      >>> u
      ['show', 'how', 'to', 'index', 'into', 'sequences']
      >>> v
      ['show', 'how', 'to', 'index', 'into', 'sequences']
    
  • step을 사용해봅니다.
      >>> s = 'show how to index into sequences'.split()
      >>> s
      ['show', 'how', 'to', 'index', 'into', 'sequences']
      >>> s[::2]
      ['show', 'to', 'into']
    
  • step을 활용하여 리스트를 reverse할 수 있습니다.
      >>> s = 'show how to index into sequences'.split()
      >>> s
          ['show', 'how', 'to', 'index', 'into', 'sequences']
      >>> s[::-1]
      ['sequences', 'into', 'index', 'to', 'how', 'show']