Slice danh sách các danh sách Python

#Slice danh sách trong python number = [10, 20, 30, 40, 50] #forward index 0 1 2 3 4 #reverse index -5 -4 -3 -2 -1 #from index 0 to 1. [10, 20] (chỉ mục 2 tôi. e 30 bị loại trừ) print("Chỉ số từ 0 đến 1 = ", số[. 2]) #từ chỉ số 2 đến hết. [30, 40, 50] (chỉ số 2 i. bao gồm 30 ) print("Chỉ số từ 2 đến 4 = ", số[2. ]) #điều đảm bảo rằng các số[. chỉ số] + số [chỉ số. ] luôn bằng số print("Danh sách các phần tử là ", số[. 2]+số[2. ]) #từ chỉ số -5 đến -4. [10, 20] (chỉ số -3 i. e 30 bị loại trừ) print("Chỉ số -5 đến -4 = ", số[. -3]) #từ chỉ số -3 đến -1. [30, 40, 50] (chỉ số -3 i. e. 30 bao gồm) print("Chỉ số -3 đến -1 = ", số[-3. ]) print("Danh sách các phần tử là ", số[. -3]+số[-3. ])

Để 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

Slice danh sách các danh sách Python

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']

Slice danh sách các danh sách Python

Lưu ý rằng mục ở 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 danh sách các danh sách Python

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']

Slice danh sách các danh sách Python

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

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

Đả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']
print(L[::-1])
# Prints ['e', 'd', 'c', 'b', 'a']

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

# Modify multiple list items
L = ['a', 'b', 'c', 'd', 'e']
L[1:4] = [1, 2, 3]
print(L)
# Prints ['a', 1, 2, 3, 'e']

# Replace multiple elements in place of a single element
L = ['a', 'b', 'c', 'd', 'e']
L[1:2] = [1, 2, 3]
print(L)
# Prints ['a', 1, 2, 3, 'c', 'd', 'e']

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 hiện

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 chuyển nhượng

Bạn có thể ghép một danh sách bằng Python không?

Như đã đề cập trước đó việc cắt danh sách là một phương pháp phổ biến trong Python và có thể được sử dụng với cả chỉ mục dương cũng như chỉ mục phủ định . Sơ đồ dưới đây minh họa kỹ thuật cắt danh sách. Chương trình dưới đây chuyển hình minh họa trên thành mã python. Python3.

Danh sách các mục có thể được cắt lát?

Cũng như sử dụng cắt để trích xuất một phần của danh sách (i. e. một lát ở bên phải 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 ở bên trái của một dấu bằng. In python terminology, this is because lists are mutable objects, while strings are immutable.