파이썬에서 list와 문자열은 비슷한 특징을 갖는데
그중에서 많이쓰는 기능은 slice를 통해서 값을 자르거나 변경하거나 추가하는 것인데 간단하게 그 방법을 정리해 보려고한다.
>>> list(range(10)) #으로 실행하면 [0,1,2,3,4,5,6,7,8,9]의 리스트가 만들어 진다.
>>> list[1:4] #[1,2,3]을 반환한다. 첫번째 index포함 두번째 index전까지의 값을 가져온다.
>>> list[0:len(list)] #이렇게도 전체 리스트를 반환받을 수 있지만
>>> list[:] #중간에 [:]콜론을 사용해도 전체 리스트를 받을 수 있다.
>>> list[:4] #이렇게 사용하면 0~3번째 인덱스 값을 반환하고
>>> list[3:] #이렇게 사용하면 3~끝 인덱스까지의 값을 반환한다.
그리고 스텝(step)을 정해서 값을 가져올수 있는데 짝수 번째 값이라던지 3씩값을 더해서 가져올 수 있다.
>>> list[2:9:2] #이렇게 지정하면 마지막2가 step이 되어서 [2,4,6,8]이 반환되고
>>> list[::3] #이렇게 하면 전체 리스트에서 3씩증가하며 값을 가져온다. [0, 3, 6, 9]
그리고 step은 양의 값만아니라 음의 값으로도 지정이 가능한데
>>> list[2:6:-2] #이렇게 지정하면 [] 빈배열을 반납하는데 2번째 인덱스에서 -2 step으로는 6에 도달할 수 없기 때문이다. 그래서
>>> list[6:2:-2] #이렇게 하면 [6,4]가 리턴된다. 두번째 인덱스전까지 이기 때문에 2는 포함 되지 않는다 그래서 2를 포함하고 싶다면
>>> list[6:1:-2] #이렇게 사용해야 한다. 이렇게 인덱스 관련 값을 가져올때는 이런 부분을 유의해서 사용하면 좋을 것 같다.
그리고 이렇게 값을 가져오는 것 뿐만 아니라 변경도 가능한데
>>> list[2,4] = [22,33] #이렇게 대입하면 [0,1,22,33,4,5,6,7,8,9]로 변경된다.
물론 이렇게 뿐만아니라 더 많은 값이나 더 적은 수의 값도 대입이 가능하다.
>>> list[2:6] = [33,44] #[0,1,33,44,6,7,8,9]
>>> list[8:] = [88,99,10,11,12] #[0,1,2,3,4,5,6,7,88,99,10,11,12]로 변경도 가능하다.
그리고 이러한 리스트의 특징은 문자열에도 적용이 가능하니 각자 테스트하면서 정리하면 좋을 듯하다.
'프로그래밍 > Python' 카테고리의 다른 글
[Python]Window에서 파이썬 2.7과 3.6 같이 사용하기 (0) | 2017.10.25 |
---|---|
[Python]datetime (0) | 2017.10.25 |
[Python]Dictionary 사용 (0) | 2017.10.18 |
[Python] range, enumerate (0) | 2017.10.18 |
[Python]UnicodeDecodeError: 'ascii' codec can't decode byte 0xbe in position 0: ordinal not in range(128) (0) | 2017.10.17 |