Trong Python, việc cắt danh sách là một thực tế phổ biến và nó là kỹ thuật được sử dụng nhiều nhất để các lập trình viên giải quyết các vấn đề hiệu quả. Hãy xem xét một danh sách Python, theo đơn đặt hàng để truy cập vào một loạt các yếu tố trong danh sách, bạn cần cắt một danh sách. Một cách để làm điều này là sử dụng toán tử cắt lát đơn giản, tức là đại tràng [:]
Với toán tử này, người ta có thể chỉ định nơi bắt đầu cắt lát, nơi kết thúc và chỉ định bước. Danh sách cắt giảm trả về một danh sách mới từ danh sách hiện có.
Syntax:
Lst[ Initial : End : IndexJump ]
Nếu LST là một danh sách, thì biểu thức ở trên sẽ trả về phần của danh sách từ chỉ mục ban đầu đến cuối chỉ mục, ở một kích thước bước chỉ mục.
Lập chỉ mục
1. Chỉ số tích cực
Dưới đây là một chương trình đơn giản, để hiển thị toàn bộ danh sách bằng cách sử dụng cắt lát.
Python3
Lst
[50, 70, 30, 20, 90, 10, 50]0
[50, 70, 30, 20, 90, 10, 50]1
[50, 70, 30, 20, 90, 10, 50]2
[50, 70, 30, 20, 90, 10, 50]3
[50, 70, 30, 20, 90, 10, 50]4
[50, 70, 30, 20, 90, 10, 50]3
[50, 70, 30, 20, 90, 10, 50]6
[50, 70, 30, 20, 90, 10, 50]3__
[50, 70, 30, 20, 90, 10, 50]6
[50, 70, 30, 20, 90, 10, 50]7
Output:
[50, 70, 30, 20, 90, 10, 50]
Sơ đồ trên minh họa một danh sách LST với các giá trị và phần tử chỉ mục của nó.
2. Các chỉ số tiêu cực
Bây giờ, chúng ta hãy nhìn vào sơ đồ dưới đây minh họa một danh sách cùng với các chỉ mục tiêu cực của nó.
Index -1 đại diện cho phần tử cuối cùng và -n đại diện cho phần tử đầu tiên của danh sách [coi n là độ dài của danh sách]. Danh sách cũng có thể được thao tác bằng cách sử dụng các chỉ mục tiêu cực.
Python3
Lst
[50, 70, 30, 20, 90, 10, 50]0
[50, 70, 30, 20, 90, 10, 50]1
[50, 70, 30, 20, 90, 10, 50]2
[50, 70, 30, 20, 90, 10, 50]3
[50, 70, 30, 20, 90, 10, 50]4
[50, 70, 30, 20, 90, 10, 50]3
[50, 70, 30, 20, 90, 10, 50]6
[50, 70, 30, 20, 90, 10, 50]3__
[50, 70, 30, 20, 90, 10, 50]6
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]6
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]7
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]8
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]9
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']0
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']1
Output:
[50, 70, 30, 20, 90, 10, 50]
Sơ đồ trên minh họa một danh sách LST với các giá trị và phần tử chỉ mục của nó.
2. Các chỉ số tiêu cực
Bây giờ, chúng ta hãy nhìn vào sơ đồ dưới đây minh họa một danh sách cùng với các chỉ mục tiêu cực của nó.
Index -1 đại diện cho phần tử cuối cùng và -n đại diện cho phần tử đầu tiên của danh sách [coi n là độ dài của danh sách]. Danh sách cũng có thể được thao tác bằng cách sử dụng các chỉ mục tiêu cực.
Python3
Lst
[50, 70, 30, 20, 90, 10, 50]0
[50, 70, 30, 20, 90, 10, 50]1
[50, 70, 30, 20, 90, 10, 50]2
[50, 70, 30, 20, 90, 10, 50]3
[50, 70, 30, 20, 90, 10, 50]4
[50, 70, 30, 20, 90, 10, 50]3
[50, 70, 30, 20, 90, 10, 50]6
[50, 70, 30, 20, 90, 10, 50]3__
[50, 70, 30, 20, 90, 10, 50]6
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]6
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']0
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']2
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']3
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']1
Output:
[70, 30, 20, 90]
Sơ đồ trên minh họa một danh sách LST với các giá trị và phần tử chỉ mục của nó.
2. Các chỉ số tiêu cực
Python3
Bây giờ, chúng ta hãy nhìn vào sơ đồ dưới đây minh họa một danh sách cùng với các chỉ mục tiêu cực của nó.
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Lst
8[50, 70, 30, 20, 90, 10, 50]3
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]01
[50, 70, 30, 20, 90, 10, 50]6
Lst
7[50, 70, 30, 20, 90, 10, 50]04
[50, 70, 30, 20, 90, 10, 50]01
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]1
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]2
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']2
Lst
4Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']2
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]0
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']1
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]19
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]0
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']1
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]25
Output:
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]
Index -1 đại diện cho phần tử cuối cùng và -n đại diện cho phần tử đầu tiên của danh sách [coi n là độ dài của danh sách]. Danh sách cũng có thể được thao tác bằng cách sử dụng các chỉ mục tiêu cực.
Chương trình trên hiển thị toàn bộ danh sách bằng cách sử dụng chỉ số tiêu cực trong cắt danh sách.
Python3
3. Cắt lát
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Lst
8[50, 70, 30, 20, 90, 10, 50]3
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]01
[50, 70, 30, 20, 90, 10, 50]6
Lst
7[50, 70, 30, 20, 90, 10, 50]04
[50, 70, 30, 20, 90, 10, 50]01
Như đã đề cập cắt giảm danh sách trước đó là một thực tế phổ biến trong Python và có thể được sử dụng cả hai với các chỉ số tích cực cũng như các chỉ số tiêu cực. Sơ đồ dưới đây minh họa kỹ thuật cắt danh sách:
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]19
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]7
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]2
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']1
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]62
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']0
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']2
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]7
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]0
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']1
Output:
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']
Chương trình dưới đây chuyển đổi minh họa trên thành mã Python:
Dưới đây là một số ví dụ mô tả việc sử dụng danh sách cắt trong Python:
Python3
Ví dụ 1:
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Lst
8[50, 70, 30, 20, 90, 10, 50]3
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]01
[50, 70, 30, 20, 90, 10, 50]6
Lst
7[50, 70, 30, 20, 90, 10, 50]04
[50, 70, 30, 20, 90, 10, 50]01
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]1
[50, 70, 30, 20, 90, 10, 50]2
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]9
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]0
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']1
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]1
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']0
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']2
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']0
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']2
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']0
Original List: ['Geeks', 4, 'geeks !'] Sliced Lists: ['geeks !', 4, 'Geeks'] ['geeks !'] ['geeks !']1
Is
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]62
[50, 70, 30, 20, 90, 10, 50]27
[50, 70, 30, 20, 90, 10, 50]28
Output:
Original List: [-999, 'G4G', 1706256, '^_^', 3.1496] Sliced Lists: [] [] [] []
Để lại bất kỳ đối số nào như trống ban đầu, đầu hoặc chỉ mục sẽ dẫn đến việc sử dụng các giá trị mặc định, tức là 0 là độ dài ban đầu, độ dài của danh sách là kết thúc và 1 là indexJump.
Ví dụ 2:
Python3
Is
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Lst
8[50, 70, 30, 20, 90, 10, 50]3
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]01
[50, 70, 30, 20, 90, 10, 50]6
Lst
7[50, 70, 30, 20, 90, 10, 50]044____101
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]1
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]0__72
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]01
‘
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]01
Output:
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']
Danh sách cắt có thể được sử dụng để sửa đổi danh sách hoặc thậm chí xóa các yếu tố khỏi danh sách.
Ví dụ 5:
Python3
Is
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Lst
8[50, 70, 30, 20, 90, 10, 50]3
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]01
[50, 70, 30, 20, 90, 10, 50]6
Lst
7[50, 70, 30, 20, 90, 10, 50]04
[50, 70, 30, 20, 90, 10, 50]01
[70, 30, 20, 90]14
[50, 70, 30, 20, 90, 10, 50]0
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]62
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]2
[50, 70, 30, 20, 90, 10, 50]5
[70, 30, 20, 90]20
Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]1
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [4, 6, 8] [1, 3, 5, 7, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]8
[70, 30, 20, 90]24
[50, 70, 30, 20, 90, 10, 50]6
[70, 30, 20, 90]26
Is
[50, 70, 30, 20, 90, 10, 50]6
Lst
7Original List: [-999, 'G4G', 1706256, 3.1496, '^_^'] Sliced Lists: [-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^'] ['^_^']5
[50, 70, 30, 20, 90, 10, 50]01
Output:
Original List: [1, 2, 3, 4, 5, 6, 7, 8, 9] Sliced Lists: [1, 2, 3, 8, 9] [1, 3, 5, 7, 9, 2, 4, 6, 8]
Bằng cách cắt bỏ các danh sách cắt lát, một danh sách mới có thể được tạo hoặc thậm chí một danh sách có sẵn có thể được sửa đổi. & NBSP;