프로그램을 하다보니 기본이 안되어있는게 뼈져리게 느껴져서 공부하면서 작성해본다.
python에서는 슬라이싱이라는 c언어와는 다른 기능을 제공한다.
이런 편리한 기능을 이용해서 편리하게 코딩이 가능하다.
보면 그냥 단수하게 이해하고 넘어갈 수 있는 부분이지만 막상 구현하려고 하면 잘 안된다.
따라서 연습을 해보자
그리고 1차원 리스트외 2차원 리스트에 대해서도 슬라이싱을 연습해 볼 생각이다.
리스트의 슬라이싱 기본형태는 다음과 같다.
List[Start : End : Step]
각각 시작지점, 끝지점, 몇개씩 끊어서 가져올지 정함
a = [1, 2, 3, 4, 5]
print(a[1:])
print(a[:2])
print(a[1:4])
의 결과는 다음과 같다.
1차원 리스트 슬라이싱은 간단하게 알아보았고, 이제 가장 필요한 2차원 리스트에 대한 인덱스와 슬라이싱을 알아보겠다.
a = [[1, 2, 3, 4 ], [5, 6, 7, 8], [9, 10, 11, 12]]
마찬가지로 3x4리스트를 만들고 테스트를 진행해 보았다.
먼저 인덱싱과 슬라이싱의 차이입니다.
차이가 모이시나요?
인덱싱은 1차원 리스트로 나온 반면
슬라이싱은 2차원 리스트로 나왔습니다.
a[0] 는 3x4 (행, 열)이고, 인덱스 값에 숫자 하나만 들어갔으므로 첫번째 행을 의미하는 것이고,
리스트 안의 리스트 개념으로 [1234] [5678] ... 이 들어갔고, a[0]는 a리스트 안에 들어있는 [1234]리스트(원소)를 가르키므로 [1234]가 출력되는것이다.
반면 슬라이싱의 경우 2차원 리스트를 슬라이싱을 통해 가져오므로 그대로 2차원 리스트인 것이다.
1차원 리스트때를 생각해보면 a[0]은 원소의 결과 1이 나오지만 (숫자), a[0:1]은 리스트가 나온다 [1]
다음은 2차원 리스트 에서 자유롭게 슬라이싱 하는것을 확인해보겠다.
동일한 a리스트에서 작업해보겠다.
a[0, 0:2]
a[0:2, 0]
a[0:2, 0:2] 에 대한 값을 확인해보겠다.
결과는 다음과 같습니다.
'컴퓨터 프로그래밍' 카테고리의 다른 글
리스트와 numpy 문제 => 해결 (0) | 2019.06.21 |
---|---|
리스트와 numpy 문제? (0) | 2019.06.21 |
python 리스트 컴프리헨션(Comprehension) (0) | 2019.06.20 |
c# Mysql realsense tensorflow 연동 (0) | 2019.06.20 |
C#에서 Python 으로 만들어진 딥러닝 스크립트를 돌려보자 PROJECT (1) | 2019.06.19 |