코딩입문/백엔드

코딩입문기-파이썬3버전-3 리스트자료형의 슬라이싱

부산강주현 2022. 4. 27. 16:05

지난 포스팅에서 리스트 자료형에대해 간단하게 알아보고, 리스트 자료형 내의 또다른 리스트자료형을 출력하는 방법에 대해서도 복습하였다. 오늘은 예고한대로 리스트자료형의 슬라이싱에 대해서 복습할 예정인데, 슬라이싱 또한 학원에서 공부할때 "이게 왜 이렇게 되는거지?"했던 부분 중 하나였다.

슬라이싱이란 간단하게 예를들어, "안녕하십니까. 한국방송통신대학교 경영학과 17학번 강주현입니다." 라는 말 중 내가 원하는 일부만 출력할 수 있는 그런 기능이다. 전 포스팅에서 작성했듯이 기본적으로 프로그래밍 언어는 순서를 1부터 세지 않고 0부터 센다

'1234567890' 가 아닌 '0123456789'로 세는게 맞는것이다. 

 

안녕하십니까.

0 1 2 3 4 5 6

라는 문장에서 '안' 자를 출력하려면 0번째 자료를 출력하는것이고, '.'을 출력하려면, 6번째 자료를 출력한다.

이걸 리스트 자료형으로 작성하면, 

강주현정보=['안녕하십니까.' , '한국방송통신대학교' , '경영학과' , '17학번' , '강주현입니다.']

                      0                           1                     2             3                4                           

의 순서로 나타낼 수 있다 이것을 원하는 대로 출력하려면, print(강주현정보[0:3]) 이런식으로 코드를 쳐야하는데, 여기서 중요한 것은 대괄호 안의 숫자인데, print(강주현정보[0:3]에서 0이 나타내는것은 '1번째 인덱스' 이지만, 3이 나타내는것은 '4번째 인덱스 전까지' 이다.

내가 3번째 인덱스를 출력하려면 [0:3]이라고 입력하면 안되고, [0:4]이라고 입력해야 하는것이다.

[0:3]이라고 타이핑 했기에 '17학번' 까지 출력되는게 아닌가 싶지만, '경영학과' 까지만 나온다.

대충 문제를 만들수있는데, 간단하게,

'다음중 강주현 학생의 학교를 파이썬에서 출력하려면 코드를 어떻게 입력해야할까?' 라는 문제에서

정답은

print(kangjuhyeon[1:2]) 라고 입력하면 되는 부분이다.

[1:2]를 타이핑 하니, '한국방송통신대학교' 라는 글자만 출력이 된다.

[1:2]의 의미는 2번째 인덱스에서 3번째 인덱스 전까지 출력하라는 뜻이다.

 

싹 다 출력하려면 대괄호 안에 아무것도 안쓰면 된다.

print(kangjuhyeon[:])이렇게 입력하면 되는 부분이다.

지정된 자리까지 출력하려면 뒷부분에 숫자만 넣으면 되고,

지정된 자리부터 출력하려면 앞부분에 숫자만 넣으면 된다.

 

인덱스 슬라이싱은 계속 사용은 하지만 제대로 써먹을 줄 몰랐던게, [?:!] 의 형식 안에서 !의 뜻은 '!자리 전까지' 라는 조건이 걸려있어서 사실 이해하기가 좀 힘들었다.

 

그 외에도 리스트 관련 함수가 많지만, 조금만 응용하면 되는 부분이라 포스팅은 안하기로 마음먹었다 ㅎㅎ

 

다음 포스팅은 튜플자료에 관해 작성할 것 같다.

분명 연말에 쪼꼬미였는데 그새 이렇게 컸다. 성깔더러운 시바견