본문 바로가기

오늘의 파이썬 팁

오늘의 파이썬 팁: 리스트 슬라이싱

오늘의 파이썬 팁 3번째 주제는 리스트 슬라이싱입니다. 리스트 슬라이싱은 리스트를 다룰 때 아주 유용한 방법이라서 잘 외워두시고 쓰면 코딩할 때 더 편하게 할 수 있을 거예요.

 

리스트 슬라이싱은 이름 그대로 리스트를 자르고 변형하는 거예요. 예를 들면 제가 1부터 10까지의 리스트가 있을 때, 그중에서 2부터 6까지만 원하면 리스트 슬라이싱을 사용해서 새로운 리스트를 만들 수 있는 거죠.

 

바로 한번 코드를 봐볼까요?

리스트 슬라이싱

위에 코드처럼 리스트 슬라이싱은 대괄호 안에 값들을 넣어서 사용하는데요. 첫 번째 값은 시작 인덱스, 그다음에 마지막 인덱스, 그리고 3번째 값은 인덱스를 건너뛰기할 값을 넣어주는데요. 여기서 주의할 점은 2번째 값인 마지막 인덱스는 자기 자신을 포함하지 않는다는 건데요. 지금 예제 코드를 보면 마지막 값이 4이지만 마지막 값은 인덱스 3번인 4이거든요. 그리고 만약 3번째 값을 지정해주지 않았을 때는 기본 값으로 1이 들어가게 됩니다.

 

아직 리스트 슬라이싱의 3번째 값이 뭔지 잘 모르시겠죠? 한번 아래 코드를 봐봅시다.

인덱스 건너뛰기

코드에 나와있는 데로, 그냥 numbers[0:8] 이였으면 [1, 2, 3, 4, 5, 6, 7, 8]로 출력이 되어야 하는데 지금은 [1, 3, 5, 7]로 출력이 되는데요. 이게는 바로 리스트 슬라이싱의 3번째 값인 2가 하는 역할입니다. 지금 출력 결과를 보면 numbers의 첫 번째 값, 3번째 값, 5번째... 이렇게 출력됐죠? 이렇게 출력된 이유는 원래라면 numbers의 0번 인덱스에서 1씩 증가하면서 7까지의 값을 return 했는데 이번에 0번 인덱스부터 2씩 증가하면서 7까지의 값을 return 하게 돼서 [1, 3, 5, 7]이 출력된 겁니다. 

 

만약 리스트의 3번째 값부터 마지막 값까지의 리스트를 얻고 싶다면 어떻게 해야 될까요?

numbers[3:10]? 맞아요 하지만 만약에 리스트의 길이를 모르고 있다면요? 그땐 어떡해야 할까요?

 

그럴 때는 그냥 비워두면 돼요.

numbers[3:10] 대신에 numbers[3:]이라고 비어 두면 [3, 4, 5, 6, 7, 8, 9, 10]으로 잘 출력이 됩니다.

이것과 비슷하게 앞에 값도 비어 두면 전체 리스트를 출력합니다. 그래서 numbers[::]는 1부터 10까지 모두 출력하겠죠. 

 

마지막으로 알려드릴 것은 음수 인덱싱이에요. 딱 들었을 때는 감이 안 잡히죠? 하지만 아주 쉬운 내용이에요. 음수 인덱싱은 리스트의 길이를 모를 때 유용한 방법이에요. 

바로 코드 보시죠.

음수 인덱싱

위에 코드처럼, 음수 인덱싱은 뒤에서부터... 같은 방법이에요. -1은 맨 마지막 값, -3은 뒤에서부터 3번째 값, -10은 뒤에서부터 10번째 값. 아까 말했듯이 음수 인덱싱은 리스트의 길이를 모를 때 마지막 값을 구하고 싶을 때 아주 유용하게 사용되는 방법이에요.

 

이렇게 오늘은 리스트 슬라이싱을 배워보았는데요. 리스트 슬라이싱은 코딩을 할 때 자주 사용되니까 잘 외우고 이해해서 유용하게 사용해보세요.