slice
>>> slice(stop)
>>> slice(start, stop[, step])
잘라내기 원하는 index 들을 정의하는 클래스이다.
slice object에 대해 한마디로 표현하기가 쉽지 않다.
원활한 이해를 위해 예를 들면 다음과 같다.
먼저, sample = "abcdefghijklmn" 이라는 문자열이 있다고 하자.
이 중 sample[2] 부터 sample[5] 전 까지의 문자열만 빼내고 싶다면 어떻게 하면 될까? (즉, index 2부터 4까지 표시한다.)
>>> sample = "abcdefghijklmn" >>> sample[2:5] 'cde'
위와 같이 colon (:) 을 이용하여 추출해 내면 된다.
[Slice Notation ":" 을 이용한 나누기]
>>> a = "abcdefg" >>> b = "hijklmn" >>> c = "opqrstu" >>> d = "vwxyz" >>> a[1:3] 'bc' >>> b[1:3] 'ij' >>> c[1:3] 'pq' >>> d[1:3] 'wx'
반면 위와 같이 서로 다른 문자열에 대해서 동일한 위치를 잘라내고자 한다면 어떨까?
위와 같은 경우에 대해서 slice object를 사용하면 좋을 듯 하다. (위와 같이 interprete mode가 아니고 code 기반 일 경우)
>>> sl = slice(1,3) >>> a[sl] 'bc' >>> b[sl] 'ij' >>> c[sl] 'pq' >>> d[sl] 'wx'
위의 예에서는 하나의 slice object만 선언하고 사용하였지만, 여러 slice object를 선언해 놓고 상황에 맞게 사용할 수 있다.
slice object 생성시 전달되는 argument는 range나 xrange의 것과 동일하다.
__builtin__ module에 포함된 class 이다.
slice object에 전달된 인자들은 아래와 같이 확인이 가능하다.
>>> sl = slice(1,3) >>> sl slice(1, 3, None) >>> sl.start 1 >>> sl.stop 3 >>> sl.step
한번 전달된 argument들은 read-only라서 추후 수정이 불가능하다.
>>> sl.start = 2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: readonly attribute
>>> help(slice)
Help on class slice in module __builtin__:
class slice(object)
| slice(stop)
| slice(start, stop[, step])
|
| Create a slice object. This is used for extended slicing (e.g. a[0:10:2]).
|
| Methods defined here:
|
| __cmp__(...)
| x.__cmp__(y) <==> cmp(x,y)
|
| __getattribute__(...)
| x.__getattribute__('name') <==> x.name
|
| __hash__(...)
| x.__hash__() <==> hash(x)
|
| __reduce__(...)
| Return state information for pickling.
|
| __repr__(...)
| x.__repr__() <==> repr(x)
|
| indices(...)
| S.indices(len) -> (start, stop, stride)
|
| Assuming a sequence of length len, calculate the start and stop
| indices, and the stride length of the extended slice described by
| S. Out of bounds indices are clipped in a manner consistent with the
| handling of normal slices.
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| start
|
| step
|
| stop
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __new__ = <built-in method __new__ of type object>
| T.__new__(S, ...) -> a new object with type S, a subtype of T
'Language > Python' 카테고리의 다른 글
Python - divmod(), 두 숫자를 나누어 몫과 나머지를 tuple로 반환하는 함수 (0) | 2018.01.13 |
---|---|
Python - callable(), 호출 가능한 object 여부를 판단하는 함수 (0) | 2018.01.12 |
Python - dir(), object의 속성(attribute) 목록을 보여주는 함수 (0) | 2018.01.12 |
Python - int(), 정수(integer)를 반환하는 클래스 (0) | 2018.01.04 |
Python - xrange(), 순차적인 숫자를 만들 수 있는 generator를 생성하는 클래스 (0) | 2018.01.03 |
Python - range(), 순차적인 숫자를 가지는 list를 생성하는 함수 (0) | 2018.01.03 |
Python - float(), 실수(float)를 반환하는 클래스 (0) | 2018.01.02 |
Python - hasattr(), object의 속성(attribute) 존재를 확인하는 함수 (0) | 2018.01.02 |