Hướng dẫn how does slicing a list work python? - làm thế nào để cắt một danh sách hoạt động python?

Định dạng cắt danh sách là [Bắt đầu: Dừng: Bước].[start:stop:step].

  • Bắt đầu là chỉ số của danh sách nơi cắt lát bắt đầu. is the index of the list where slicing starts.
  • Dừng là chỉ số của danh sách nơi cắt kết thúc. is the index of the list where slicing ends.
  • Bước cho phép bạn chọn mục thứ n trong phạm vi bắt đầu dừng. allows you to select nth item within the range start to stop.

Danh sách cắt lát hoạt động tương tự như hàm python slice ().


Nhận tất cả các mặt hàng

my_list = [1, 2, 3, 4, 5]

print(my_list[:])

Đầu ra

[1, 2, 3, 4, 5]

Nếu bạn chỉ cần sử dụng

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
8, bạn sẽ nhận được tất cả các yếu tố của danh sách. Điều này tương tự như
my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
9.


Nhận tất cả các mục sau một vị trí cụ thể

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])

Đầu ra

[3, 4, 5]

Nếu bạn chỉ cần sử dụng

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
8, bạn sẽ nhận được tất cả các yếu tố của danh sách. Điều này tương tự như
my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
9.

Nhận tất cả các mục sau một vị trí cụ thể

Nếu bạn muốn có được tất cả các yếu tố sau một chỉ mục cụ thể, bạn có thể đề cập đến chỉ mục đó trước

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
8 như trong ví dụ trên. indexing starts from 0. Item on index 2 is also included.


Trong ví dụ trên, các phần tử tại INDEX 2 và tất cả các yếu tố sau chỉ mục 2 được in.

my_list = [1, 2, 3, 4, 5]

print(my_list[:2])

Đầu ra

[1, 2]

Nếu bạn chỉ cần sử dụng

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
8, bạn sẽ nhận được tất cả các yếu tố của danh sách. Điều này tương tự như
my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
9.

Nhận tất cả các mục sau một vị trí cụ thể


Nếu bạn muốn có được tất cả các yếu tố sau một chỉ mục cụ thể, bạn có thể đề cập đến chỉ mục đó trước my_list = [1, 2, 3, 4, 5] print(my_list[2:])8 như trong ví dụ trên.

my_list = [1, 2, 3, 4, 5]

print(my_list[2:4])

Đầu ra

[3, 4]

Nếu bạn chỉ cần sử dụng

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
8, bạn sẽ nhận được tất cả các yếu tố của danh sách. Điều này tương tự như
my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
9.

Nhận tất cả các mục sau một vị trí cụ thể


Nếu bạn muốn có được tất cả các yếu tố sau một chỉ mục cụ thể, bạn có thể đề cập đến chỉ mục đó trước my_list = [1, 2, 3, 4, 5] print(my_list[2:])8 như trong ví dụ trên.

my_list = [1, 2, 3, 4, 5]

print(my_list[::2])

Đầu ra

[1, 3, 5]

Nếu bạn chỉ cần sử dụng

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
8, bạn sẽ nhận được tất cả các yếu tố của danh sách. Điều này tương tự như
my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
9.

Nhận tất cả các mục sau một vị trí cụ thể

Nếu bạn muốn có được tất cả các yếu tố sau một chỉ mục cụ thể, bạn có thể đề cập đến chỉ mục đó trước

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
8 như trong ví dụ trên.

[1, 2, 3, 4, 5]
0

Đầu ra

[1, 2, 3, 4, 5]
1

Nếu bạn chỉ cần sử dụng

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
8, bạn sẽ nhận được tất cả các yếu tố của danh sách. Điều này tương tự như
my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
9.

Nhận tất cả các mục sau một vị trí cụ thể

[1, 2, 3, 4, 5]
2

Đầu ra

[1, 2, 3, 4, 5]
3

Nếu bạn chỉ cần sử dụng

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
8, bạn sẽ nhận được tất cả các yếu tố của danh sách. Điều này tương tự như
my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
9.

Các câu trả lời ở trên không thảo luận về việc gán lát cắt. Để hiểu được sự phân công lát cắt, thật hữu ích khi thêm một khái niệm khác vào nghệ thuật ASCII:

[1, 2, 3, 4, 5]
4

Một heuristic là, đối với một lát từ 0 đến n, nghĩ: "Zero là sự khởi đầu, bắt đầu từ đầu và lấy n vật phẩm trong một danh sách".

[1, 2, 3, 4, 5]
5

Một heuristic khác là, "Đối với bất kỳ lát cắt nào, hãy thay thế bắt đầu bằng 0, áp dụng heuristic trước đó để kết thúc danh sách, sau đó đếm số đầu tiên trở lại để cắt các vật phẩm từ đầu"

[1, 2, 3, 4, 5]
6

Quy tắc đầu tiên của gán lát cắt là vì việc cắt sẽ trả về danh sách, việc gán lát cắt yêu cầu một danh sách (hoặc khác có thể điều chỉnh được):

[1, 2, 3, 4, 5]
7

Quy tắc thứ hai của gán lát cắt, mà bạn cũng có thể thấy ở trên, là bất kỳ phần nào của danh sách được trả lại bằng cách lập chỉ mục lát cắt, đó là cùng một phần được thay đổi bằng cách gán lát cắt:

[1, 2, 3, 4, 5]
8

Quy tắc thứ ba của gán lát cắt là, danh sách được gán (có thể điều chỉnh được) không phải có cùng độ dài; Đụ được lập chỉ mục chỉ đơn giản là cắt ra và thay thế en masse bằng bất cứ điều gì đang được chỉ định:

[1, 2, 3, 4, 5]
9

Phần khó nhất để làm quen là gán cho các lát trống. Sử dụng heuristic 1 và 2, thật dễ dàng để có được đầu của bạn khi lập chỉ mục một lát trống:

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
0

Và sau đó một khi bạn đã thấy điều đó, việc gán lát cho lát trống cũng có ý nghĩa:

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
1

Lưu ý rằng, vì chúng tôi không thay đổi số thứ hai của lát cắt (4), các mục được chèn luôn xếp ngay với 'O', ngay cả khi chúng tôi gán cho lát trống. Vì vậy, vị trí cho gán lát trống là phần mở rộng logic của các vị trí cho các bài tập lát không trống.

Sao lưu một chút, điều gì xảy ra khi bạn tiếp tục với đám rước của chúng tôi về việc đếm phần lát cắt bắt đầu?

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
2

Với việc cắt lát, một khi bạn đã hoàn thành, bạn đã hoàn thành; Nó không bắt đầu cắt ngược. Trong Python, bạn không nhận được những bước tiến tiêu cực trừ khi bạn yêu cầu rõ ràng bằng cách sử dụng một số âm.

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
3

Có một số hậu quả kỳ lạ đối với quy tắc "một khi bạn đã hoàn thành, bạn đã hoàn thành":

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
4

Trên thực tế, so với lập chỉ mục, việc cắt Python là không có lỗi một cách kỳ lạ:

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
5

Điều này đôi khi có thể có ích, nhưng nó cũng có thể dẫn đến hành vi hơi kỳ lạ:

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
6

Tùy thuộc vào ứng dụng của bạn, điều đó có thể ... hoặc có thể không ... là những gì bạn đã hy vọng ở đó!


Dưới đây là văn bản của câu trả lời ban đầu của tôi. Nó rất hữu ích cho nhiều người, vì vậy tôi không muốn xóa nó.

my_list = [1, 2, 3, 4, 5]

print(my_list[2:])
7

Điều này cũng có thể làm rõ sự khác biệt giữa cắt và lập chỉ mục.

Nó có nghĩa là gì khi cắt một danh sách trong Python?

Nói tóm lại, cắt lát là một công cụ linh hoạt để xây dựng danh sách mới trong danh sách hiện có. Python hỗ trợ ký hiệu lát cắt cho bất kỳ loại dữ liệu tuần tự nào như danh sách, chuỗi, bộ dữ liệu, byte, bytearrays và phạm vi. Ngoài ra, bất kỳ cấu trúc dữ liệu mới cũng có thể thêm hỗ trợ của nó.a flexible tool to build new lists out of an existing list. Python supports slice notation for any sequential data type like lists, strings, tuples, bytes, bytearrays, and ranges. Also, any new data structure can add its support as well.

Cắt lát có hoạt động trong danh sách không?

Các hoạt động cắt lát được giới thiệu trong Phần 2.4.3 cũng hoạt động với các danh sách, với một bổ sung rất hữu ích.Cũng như sử dụng cắt lát để trích xuất một phần của danh sách (nghĩa là một lát ở dấu tay phải có dấu bằng), bạn có thể đặt giá trị của các phần tử trong danh sách bằng cách sử dụng một lát ở phía bên trái của dấu hiệu bằng nhau. 3 also work with lists, with one very useful addition. As well as using slicing to extract part of a list (i.e. a slice on the right hand sign of an equal sign), you can set the value of elements in a list by using a slice on the left hand side of an equal sign.

Khi cắt trong Python 2 trong 2 chỉ định là gì?

Các mục trong khoảng 2 bắt đầu từ chỉ số cuối cùng được cắt lát.Nếu bạn muốn các mục từ vị trí này sang vị trí khác, bạn có thể đề cập đến chúng từ đầu đến dừng.Các mục từ chỉ số 1 đến 4 được cắt với các khoảng 2. are sliced. If you want the items from one position to another, you can mention them from start to stop . The items from index 1 to 4 are sliced with intervals of 2.

Cắt lát là gì và nó hoạt động như thế nào?

Cắt trong Python là một tính năng cho phép truy cập các phần của các chuỗi như chuỗi, bộ dữ liệu và danh sách.Bạn cũng có thể sử dụng chúng để sửa đổi hoặc xóa các mục của các chuỗi có thể thay đổi như danh sách.Các lát cắt cũng có thể được áp dụng trên các đối tượng của bên thứ ba như mảng numpy, cũng như các chuỗi dữ liệu và dòng dữ liệu của gấu trúc.a feature that enables accessing parts of sequences like strings, tuples, and lists. You can also use them to modify or delete the items of mutable sequences such as lists. Slices can also be applied on third-party objects like NumPy arrays, as well as Pandas series and data frames.