- 1. 파이썬 두 리스트 비교하기
- 2. 파이썬으로 html 파일 만들기
- 3. 파이썬 리스트 순서 뒤집기
- 4. 파이썬 리스트 요소 삭제하기
- 5. 파이썬 두 문자열 비교하기 (difflib)
- 6. 파이썬 문자열 앞을 0으로 채우기
- 7. 파이썬 문자열 찾기
- 8. 파이썬 모든 문자열 찾아서 바꾸기
- 9. 파이썬 문자열 결합, 분리하기
- 10. 파이썬 문자열 포맷팅하기
- 11. 파이썬 리스트 슬라이싱 활용하기
- 12. 파이썬 리스트 길이 제한하기
- 13. 파이썬 조건문 간단하게 표현하기
- 14. 파이썬 with 문으로 파일 열고 닫기
- 15. 파이썬 enumerate() 사용하기
- 16. 파이썬 zip() 사용하기
- 17. 파이썬 튜플 언패킹하기
- 18. 파이썬 변수 바꾸기 (swap)
- 19. 파이썬 딕셔너리에서 값 얻기
- 20. 파이썬 출력 결과 저장하기
- 21. 파이썬 폴더 생성하기
- 22. 파이썬 시간 측정하기
- 23. 파이썬 int() 함수 사용하기
- 24. 파이썬 float() 함수 사용하기
- 25. 파이썬 리스트 만들기
- 26. NumPy 어레이 슬라이싱 활용하기
- 27. NumPy 어레이 한 줄에 출력하기
- 28. NumPy 어레이 요소 바꾸기
- 29. NumPy 어레이 정렬 (np.argsort)
- 30. NumPy 어레이 연결, 분리하기
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
11. 파이썬 리스트 슬라이싱 활용하기¶
리스트 슬라이싱은 파이썬의 가장 유용한 기능 중 하나입니다.
이 페이지에서는 다양한 리스트 슬라이싱 예제를 그림과 함께 소개합니다.
위 그림과 같이 1부터 8까지 여덟 개의 숫자를 포함하는 하나의 리스트가 있습니다.
파이썬에서는 아래와 같이 start, stop, step 세 개의 숫자를 사용해서 리스트를 다양하게 슬라이싱할 수 있습니다.
start를 입력하지 않으면 0을 입력한 것과 같습니다.
stop을 입력하지 않으면 리스트의 길이 (
len(my_list)
)를 입력한 것과 같습니다.step을 입력하지 않으면 1을 입력한 것과 같습니다.
■ Table of Contents
1) 시작, 끝 지점 사용하기¶
예제¶
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[3:])
print(my_list[:5])
print(my_list[2:6])
[4, 5, 6, 7, 8]
[1, 2, 3, 4, 5]
[3, 4, 5, 6]
my_list[3:]은 리스트의 인덱스 3의 위치에서 끝까지 슬라이싱합니다.
앞에서 3개의 성분을 제외하는 것과 같습니다.
my_list[:5]은 리스트의 처음부터 인덱스 5의 위치까지 슬라이싱합니다.
앞에서 5개의 성분을 선택하는 것과 같습니다.
my_list[2:6]은 리스트의 인덱스 2의 위치에서 인덱스 6의 위치까지 슬라이싱합니다.
앞에서 6개를 선택하고 2개를 제외하는 것과 같습니다.
2) 음의 인덱스 사용하기¶
예제¶
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[:-2])
print(my_list[-4:])
print(my_list[-5:-2])
[1, 2, 3, 4, 5, 6]
[5, 6, 7, 8]
[4, 5, 6]
my_list[:-2]은 리스트의 처음부터 인덱스 -2의 위치까지 슬라이싱합니다.
뒤에서 2개의 성분을 제외하는 것과 같습니다.
my_list[-4:]은 리스트의 인덱스 -4의 위치에서 끝까지 슬라이싱합니다.
뒤에서 4개의 성분을 선택하는 것과 같습니다.
my_list[-5:-2]은 리스트의 인덱스 -5의 위치에서 인덱스 -2의 위치까지 슬라이싱합니다.
뒤에서 5개를 선택하고 2개를 제외하는 것과 같습니다.
3) 리스트 복사하기¶
예제¶
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[:])
[1, 2, 3, 4, 5, 6, 7, 8]
my_list[:]은 리스트의 처음부터 끝까지 슬라이싱합니다.
리스트 전체를 복사하는 것과 같으며, 얕은 복사 (Shallow copy)에 해당합니다.
4) 간격 (step) 사용하기¶
예제¶
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[::2])
print(my_list[::3])
[1, 3, 5, 7]
[1, 4, 7]
my_list[::2]은 리스트의 처음부터 끝까지 간격 2 단위로 슬라이싱합니다.
my_list[::3]은 리스트의 처음부터 끝까지 간격 3 단위로 슬라이싱합니다.
5) 시작 (start)/끝 (stop)/간격 (step) 사용하기¶
예제¶
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[1::2])
print(my_list[1::3])
print(my_list[2:6:2])
[2, 4, 6, 8]
[2, 5, 8]
[3, 5]
my_list[1::2]은 리스트의 인덱스 1의 위치에서 끝까지 간격 2 단위로 슬라이싱합니다.
my_list[1::3]은 리스트의 인덱스 1의 위치에서 끝까지 간격 3 단위로 슬라이싱합니다.
my_list[2:6:2]은 리스트의 인덱스 2의 위치에서 인덱스 6의 위치까지 간격 2 단위로 슬라이싱합니다.
6) 음의 간격 (step) 사용하기¶
예제¶
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[::-1])
print(my_list[::-2])
print(my_list[::-3])
[8, 7, 6, 5, 4, 3, 2, 1]
[8, 6, 4, 2]
[8, 5, 2]
my_list[::-1]은 리스트의 처음부터 끝까지 간격 -1 단위로 슬라이싱합니다.
뒤집어진 리스트 전체를 복사하는 것과 같습니다.
마찬가지로 my_list[::-2]은 리스트의 처음부터 끝까지 간격 -2 단위로 슬라이싱합니다.
my_list[::-3]은 리스트의 처음부터 끝까지 간격 -3 단위로 슬라이싱합니다.
전체 내용은 아래 그림을 참고하세요.