글
파이썬 (Python) 리스트 (3) - 리스트 슬라이싱과 역인덱스
근 한달만에 정리를 하게 되었습니댜..
그동안 일이 조금 많기도 하고, 게으름도 조금 부렸었는데 다시 한번 잊어버릴라...
이전 파이썬 리스트에 대해 알아보았었는데, 오늘은 조금 더 심화시켜 리스트의 슬라이싱.
그리고 역인덱스를 파보도록하죠.
(사실 내가 안까먹기 위한 공부댜..)
1. 리스트 슬라이싱
파이썬에 입문하며 조금 생소했던 부분인데, 리스트 슬라이싱..
이눔.... 생각보다 중요합니다. (많이!)
이게 슬라이싱을 구성하는 기본 문법입니다.
간단히 사용사례를 스노우타운 주민들 리스트로 살펴볼겁니다. 문법자체보다는 다른 의미가 더 깊기 때문이죠.
한장으로 리스트 슬라이싱 문법과 사용케이스 끝낼테니 잘 보세요! 스노우타운 주민 여러분!!
자 본래 의미 고찰... 이녀석을 꺼낸 이유는 따로 있습니다.
바로.. 리스트 2장에서 살펴보았던, copy() 함수와 객체별 레퍼런스의 메모리 주소값의 연장선이죠.
이 녀석. 슬라이싱을 0번 앙몬드부터 시작하건, 중간에 2개씩 끊건. 우리는 하나의 "스노우타운_마을주민_리스트" 를 통해서 슬라이싱을 모두 끝냈습니다.
즉, 원본 리스트의 데이터값을 유지한채로 새로운 콜렉션을 탄생시켰댜.....
이거 생각보다 중요합니다.
호스팅 환경에 부담을 최대한 덜면서 원본 데이터 백업 및 데이터 처리가 가능하다는 의미이죠!
10만건 정도의 대량의 데이터가 있다고 가정하고, 그 대용량 데이터를 원본 손상 없이, 야금야금 떼어내서 처리한다. 문제가 생기면 바로 그 원본 데이터로 롤백시키면 된다..
사실 이것때문에 리스트 슬라이싱을 뽑아본 거였습니다. 개발의 세계에서는 이를 원본 데이터를 손상시키지 않는다하여, "비파괴동작" 이라고 부르죠. 그럼 "파괴동작"은 뭐가 있을까요?
전장에서 보았던, insert, append, remove, pop... 모두 원본 데이터를 조작해 기존 리스트가 변경되었었죠?
파괴동작입니다.
자 그럼 다시 2장에서 꺼내보았던 id함수를 또 여기서 써보도록 하죠. 무슨 주소값이 나올까요?
스노우타운 마을주민 리스트의 원본 메모리주소 (1)과, 슬라이싱 했을 때의 주소가 다른 것을 볼 수 있습니다.
즉 파이썬 실행 시, 인터프리터가 슬라이싱에 대하여 새로운 메모리 주소를 할당하고 그에 대해 쓰는 것을 알 수 있습니다.
***** 노트노트.....
2. 마이너스 인덱스
일반적으로 우리가 리스트나 배열하면, 0번부터 인덱스가 시작한다고 생각을 하죠.
0이 첫 값부터 쭈욱 시작하면, 마이너스 인덱스는 맨 마지막부터 첫 값까지 가요!
마이너스 인덱스를 통해, 데이터를 처리할 때 조금 더 센스를 발휘해보면 다른 개발자들도 뭔가 재미나게 로직을 꾸밀 수도 있는 상황이 올겁니다 :)
슬라이싱 자체는, 솔직히 저거를 왜 쓰는건가.. 라기보다는 특수 상황에서의 유용성. 그리고 가장 중요한
원본데이터를 그대로 보존시키면서 데이터 작업이 가능하다. 비파괴동작..
을 꼭 기억하고 가셨으면 합니다.
으.. 또 7시간 뒤면 출근해야한다.... 이만 개발자 앙몬드는 슬슬 자러갑니다...
'IT > Python3' 카테고리의 다른 글
AWS EBS 네임태그 자동화 람다 (0) | 2020.08.17 |
---|---|
AWS ELB 네임태그 생성 자동화 스크립트 (0) | 2020.08.10 |
파이썬 (Python) 리스트 (2) - 리스트 제어 함수 (0) | 2020.04.19 |
파이썬 (Python) 리스트 (1) - 리스트를 만들어보쟈 (0) | 2020.04.15 |
파이썬 기초 - 콜렉션 (0) | 2020.04.13 |