Cắt danh sách python

Để truy cập một loạt các mục trong danh sách, bạn cần cắ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 L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[-7:-2]) # Prints ['c', 'd', 'e', 'f', 'g']5

Với toán tử này, bạn có thể chỉ định nơi bắt đầu cắt, nơi kết thúc và chỉ định bước

Cắt một danh sách

Nếu L là một danh sách thì biểu thức L [ start. dừng lại. step ] trả về phần danh sách từ chỉ mục bắt đầu đến chỉ mục dừng . step.

cú pháp

Ví dụ cơ bản

Đây là một ví dụ cơ bản về cắt danh sách

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:7]) # Prints ['c', 'd', 'e', 'f', 'g']

Lưu ý rằng mục tại chỉ mục 7 L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[-7:-2]) # Prints ['c', 'd', 'e', 'f', 'g']6 không được bao gồm

Slice với các chỉ số tiêu cực

Bạn cũng có thể chỉ định các chỉ số âm trong khi cắt danh sách

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[-7:-2]) # Prints ['c', 'd', 'e', 'f', 'g']

Slice với các chỉ số tích cực và tiêu cực

Bạn có thể chỉ định cả hai chỉ số tích cực và tiêu cực cùng một lúc

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:-5]) # Prints ['c', 'd']

Chỉ định bước cắt lát

Bạn có thể chỉ định bước cắt bằng tham số step . Tham số bước là tùy chọn và theo mặc định là 1.

# Return every 2nd item between position 2 to 7 L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:7:2]) # Prints ['c', 'e', 'g']

Kích thước bước âm

Bạn thậm chí có thể chỉ định kích thước bước âm

# Return every 2nd item between position 6 to 1 L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[6:1:-2]) # Prints ['g', 'e', 'c']

Lát ở đầu và cuối

Bỏ qua chỉ mục start bắt đầu lát cắt từ chỉ mục 0. Có nghĩa là, L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[-7:-2]) # Prints ['c', 'd', 'e', 'f', 'g']7 tương đương với L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[-7:-2]) # Prints ['c', 'd', 'e', 'f', 'g']8

# Slice the first three items from the list L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[:3]) # Prints ['a', 'b', 'c']

Trong khi đó, việc bỏ qua chỉ mục stop sẽ mở rộng lát cắt đến cuối danh sách. Có nghĩa là, L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[-7:-2]) # Prints ['c', 'd', 'e', 'f', 'g']9 tương đương với L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:-5]) # Prints ['c', 'd']0

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:7]) # Prints ['c', 'd', 'e', 'f', 'g']2

Đảo ngược một danh sách

Bạn có thể đảo ngược danh sách bằng cách bỏ qua cả bắt đầudừng indices and specifying a step as -1.

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:7]) # Prints ['c', 'd', 'e', 'f', 'g']3

Sửa đổi nhiều giá trị danh sách

Bạn có thể sửa đổi nhiều mục danh sách cùng một lúc bằng phép gán lát. Phép gán này thay thế lát cắt đã chỉ định của danh sách bằng các mục có thể lặp được chỉ định

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:7]) # Prints ['c', 'd', 'e', 'f', 'g']4

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:7]) # Prints ['c', 'd', 'e', 'f', 'g']5

Chèn nhiều mục danh sách

Bạn có thể chèn các mục vào danh sách mà không cần thay thế bất cứ thứ gì. Chỉ cần chỉ định một lát cắt có độ dài bằng không

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[-7:-2]) # Prints ['c', 'd', 'e', 'f', 'g']0

Bạn có thể chèn các mục vào giữa danh sách bằng cách giữ cả bắt đầudừng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . indices of the slice same.

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[-7:-2]) # Prints ['c', 'd', 'e', 'f', 'g']1

Xóa nhiều mục danh sách

Bạn có thể xóa nhiều mục ra khỏi giữa danh sách bằng cách chỉ định phần thích hợp cho danh sách trống

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[-7:-2]) # Prints ['c', 'd', 'e', 'f', 'g']2

Bạn cũng có thể sử dụng câu lệnh del với cùng một lát cắt

L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[-7:-2]) # Prints ['c', 'd', 'e', 'f', 'g']3

Sao chép hoặc Sao chép Danh sách

Khi bạn thực thi L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:-5]) # Prints ['c', 'd']1, bạn thực sự không có hai danh sách. Bài tập chỉ sao chép tham chiếu đến danh sách, không phải danh sách thực tế. Vì vậy, cả L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:-5]) # Prints ['c', 'd']2 và L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] print(L[2:-5]) # Prints ['c', 'd']3 đều đề cập đến cùng một danh sách sau khi gán

Chủ đề