Hướng dẫn này dạy bạn cách chia nhỏ các lần lặp, chẳng hạn như danh sách trong Python. Lý thuyết được sao lưu với các ví dụ tuyệt vời
Lập chỉ mục Python
Trong Python, bạn có thể truy cập một phần tử trong chuỗi có chỉ mục. Chỉ số này là một số nguyên đại diện cho vị trí của phần tử cụ thể đó
Trong trường hợp bạn không quen với việc lập chỉ mục hoặc lập chỉ mục phủ định, vui lòng đọc phần này trước khi chuyển sang phần cắt lát
Lập chỉ mục dựa trên Zero trong Python
Trong Python, việc lập chỉ mục bắt đầu từ con số không
Điều này có nghĩa là phần tử đầu tiên có chỉ số bằng 0 và phần tử thứ hai có chỉ số bằng một, v.v.
Đây là một minh họa
Cách sử dụng chỉ mục để truy cập các phần tử trong Python
Bây giờ bạn đã biết lập chỉ mục nghĩa là gì, hãy xem cách sử dụng chỉ mục để lấy giá trị từ các chuỗi
Trong Python, bạn có thể truy cập phần tử thứ n của một lần lặp, chẳng hạn như một danh sách, với một chỉ mục. Để thực hiện việc này, hãy sử dụng toán tử dấu ngoặc vuông bằng cách chuyển chỉ mục làm đối số
Chẳng hạn, hãy tạo một danh sách các số và hãy truy cập vào phần tử thứ 2 và thứ 3 của nó
nums = [10, 100, 1000, 10_000, 100_000] second = nums[1] third = nums[2] print[second, third]
đầu ra
100 1000
Như bạn có thể thấy, đối số thứ 2 có chỉ số là 1 và đối số thứ 3 có chỉ số là 2
Lập chỉ mục không chỉ giới hạn trong danh sách. Nó cũng hoạt động cho chuỗi và bộ dữ liệu
Dưới đây là các ví dụ
# First letter of a string greeting = "Hello world!" first_letter = greeting[0] print[first_letter] # Prints 'H' # z-cooridnate of a 3D tuple coords = 0, 2, 9 z = coords[2] print[z] # Prints 9
Lập chỉ mục tiêu cực trong Python
Python cũng hỗ trợ lập chỉ mục tiêu cực. Cách lập chỉ mục này bắt đầu ở cuối lần lặp, chẳng hạn như danh sách
Không giống như lập chỉ mục [tích cực], lập chỉ mục tiêu cực không bắt đầu từ 0. Thay vào đó, nó bắt đầu từ -1, trong đó -1 là phần tử cuối cùng [phần tử ngoài cùng bên phải]. Sau đó -2 là lần cuối cùng thứ hai, v.v.
Đây là một minh họa về lập chỉ mục tiêu cực trong Python
Ví dụ: hãy truy cập phần tử cuối cùng và phần tử đầu tiên của danh sách có chỉ mục phủ định
nums = [10, 100, 1000, 10_000] last = nums[-1] first = nums[-4] print[last, first]
đầu ra
10000 10
Tương tự như lập chỉ mục tích cực, lập chỉ mục tiêu cực cũng hoạt động với các bộ dữ liệu và danh sách
Ví dụ
# Last letter of a string greeting = "Hello world!" last_letter = greeting[-1] print[last_letter] # Prints '!' # z-cooridnate of a 3D tuple coords = 0, 2, 9 z = coords[-1] print[z] # Prints 9
Bây giờ bạn đã hiểu cơ bản về cách lập chỉ mục hoạt động trong Python
Tiếp theo, hãy chuyển sang phần cắt lát, liên quan nhiều đến lập chỉ mục
Cắt lát Iterables trong Python
Cắt lát Python cho phép bạn truy cập một loạt các phần tử từ một lần lặp. Chẳng hạn, bạn có thể lấy ba số đầu tiên từ danh sách các số bằng cách cắt
Cắt lát trong Python dựa trên lập chỉ mục dựa trên số không
Cú pháp của slice như sau
iterable[start:stop:stepsize]
Cú pháp này được gọi là cú pháp lập chỉ mục của việc cắt lát. [Sau này, bạn sẽ học một cú pháp thay thế. ]
Ở đâu
- bắt đầu đánh dấu chỉ mục bắt đầu của lát cắt. Mặc định ở đầu danh sách
- điểm dừng đánh dấu sự kết thúc của lát cắt. Đại diện cho giá trị đầu tiên không được chọn cho lát cắt. Mặc định trả lại phần còn lại của danh sách
- stepsize chỉ định có bao nhiêu phần tử để nhảy qua. Mặc định là 1
ví dụ 1. Hãy truy cập các phần tử thứ 2, thứ 3 và thứ 4 của danh sách
Để làm điều này, bạn cần phải
- Bắt đầu cắt từ phần tử thứ 2 [1 chỉ mục]
- Dừng cắt trước phần tử thứ 5 [4 chỉ số]
- Bước qua 1 giá trị tại một thời điểm
Đây là cách nó trông trong mã
[-1, -2, -3]0
đầu ra
[-1, -2, -3]1
Vì kích thước bước mặc định là 1 nên bạn không cần viết riêng. Thay vào đó, bạn có thể đã viết
nums = [10, 100, 1000, 10_000, 100_000] second = nums[1] third = nums[2] print[second, third]9
ví dụ 2. Hãy truy cập ba phần tử đầu tiên của danh sách
Để làm điều này, bạn cần phải
- Bắt đầu cắt từ đầu danh sách
- Dừng cắt trước phần tử thứ 4 [chỉ số 3]
- Bước qua 1 giá trị tại một thời điểm
Nhưng như bạn đã biết, bắt đầu có nghĩa là bắt đầu lại từ đầu theo mặc định. Ngoài ra, kích thước bước là 1 theo mặc định. Vì vậy, chúng ta có thể bỏ qua cả hai
Đây là cách nó trông trong mã
[-1, -2, -3]2
đầu ra
[-1, -2, -3]3
ví dụ 3. Hãy lấy mọi phần tử thứ ba của danh sách
Để làm điều này
- Bắt đầu cắt từ đầu
- Dừng cắt ở cuối
- Bước qua 3 giá trị
Khi bạn bắt đầu từ đầu và kết thúc ở cuối, bạn không cần chỉ định tham số bắt đầu và dừng. Điều duy nhất còn lại là kích thước bước, cần được đặt 3
Đây là cách nó trông trong mã
[-1, -2, -3]4
đầu ra
[-1, -2, -3]5
Cắt lát âm trong Python
Trong Python, tương tự như lập chỉ mục phủ định, bạn có thể sử dụng phép cắt phủ định. Điều này có nghĩa là bạn truy cập vào một loạt các giá trị bằng cách sử dụng các chỉ mục phủ định làm tham số bắt đầu và dừng
Phép cắt âm tuân theo cú pháp tương tự như phép cắt dương với các tham số bắt đầu và kết thúc là âm
iterable[start:stop:stepsize]
Nhân tiện, bạn cũng có thể xác định kích thước bước âm để lùi lại khi cắt
ví dụ 1. hãy lấy ba phần tử cuối cùng từ một danh sách
Để làm điều này, bạn cần phải
- Bắt đầu cắt ở phần tử cuối cùng thứ 3 [chỉ số -3]
- Dừng lại ở cuối danh sách
- Bước qua 1 giá trị tại một thời điểm
Điều này có nghĩa là bạn chỉ cần chỉ định tham số bắt đầu ở -3 khi cắt. Điều này làm cho lát bắt đầu từ -3 và tự động đi qua phần còn lại của danh sách
Đây là cách nó trông
[-1, -2, -3]7
đầu ra
[-1, -2, -3]8
ví dụ 2. Đảo ngược một danh sách các số
Để làm điều này, bạn có thể sử dụng cắt lát
- Bắt đầu từ cuối danh sách
- Dừng ở đầu danh sách
- Lùi lại 1 giá trị tại thời điểm [-1 bước]
Nói cách khác, bạn không cần chỉ định tham số bắt đầu hoặc dừng. Điều duy nhất bạn cần chỉ định là kích thước bước -1 để bắt đầu từ cuối và kết thúc từ đầu
Đây là cách nó trông trong mã
[-1, -2, -3]9
đầu ra
iterable[start:stop:stepsize]0
Bây giờ bạn đã hiểu cách cắt hoạt động trong Python bằng cách sử dụng cú pháp lập chỉ mục
Ngoài ra, bạn có thể sử dụng các đối tượng lát có sẵn khi cắt lát lặp lại
Cắt đối tượng trong Python
Trong Python, có một loại tích hợp được gọi là slice
Để tạo một đối tượng slice, hãy sử dụng hàm slice[] có sẵn với cú pháp sau
iterable[start:stop:stepsize]1
Ở đâu
- start là chỉ mục bắt đầu tại đó quá trình cắt bắt đầu. Mặc định là Không có
- stop là chỉ số kết thúc cho đến khi quá trình cắt tiếp tục. Cắt lát dừng tại điểm dừng – 1
- stepsize là số item nhảy qua khi slice. Mặc định là Không có
Điểm của một đối tượng lát là bạn có thể thay thế chỉ mục để cắt [
100 10000] bằng
100 10001 để cắt một lần lặp
Hãy quay lại một trong những ví dụ trước, nơi chúng tôi đã truy xuất các phần tử thứ 2, thứ 3 và thứ 4 từ danh sách
[-1, -2, -3]0
Ở đây bạn đã sử dụng cú pháp cắt trong đó bạn xác định điểm bắt đầu, điểm dừng và kích thước bước trực tiếp bên trong dấu ngoặc vuông
Bây giờ, thay vì làm theo cách này, hãy sử dụng một đối tượng lát cắt
iterable[start:stop:stepsize]3
đầu ra
iterable[start:stop:stepsize]4
Như bạn có thể thấy, điều này dẫn đến kết quả chính xác như nhau
Bạn có thể sử dụng một đối tượng lát để cắt danh sách theo bất kỳ cách nào bạn muốn. Nhưng thay vì bỏ qua bắt đầu, dừng hoặc kích thước bước, hãy sử dụng Không có
Ví dụ, hãy đảo ngược một danh sách với một đối tượng slice
iterable[start:stop:stepsize]5
đầu ra
iterable[start:stop:stepsize]6
Ở đây,
100 10002 hoạt động giống như
100 10003
Khi sử dụng Slicing trong Python
Cắt lát rất hữu ích nếu bạn muốn truy cập, sửa đổi hoặc xóa các phần của một lần lặp
Hãy xem một số ví dụ về từng trường hợp sử dụng
Truy cập các phần tử với Slicing trong Python
Truy cập các phạm vi phần tử bằng cách cắt là trường hợp sử dụng phổ biến để cắt
Trong hướng dẫn này, bạn đã thấy hàng chục ví dụ về cách truy cập các phần của iterables bằng cách cắt
Ví dụ: hãy lấy ba giá trị đầu tiên từ một bộ dữ liệu
iterable[start:stop:stepsize]7
đầu ra
iterable[start:stop:stepsize]8
Một ứng dụng rất phổ biến để truy cập các lần lặp bằng cách cắt là đảo ngược một lần lặp trong Python
Ví dụ: hãy đảo ngược một chuỗi
iterable[start:stop:stepsize]9
đầu ra
nums = [10, 100, 1000, 10_000, 100_000] second = nums[1] third = nums[2] print[second, third]0
Sửa đổi các phần tử với Slicing trong Python
Đôi khi bạn có thể muốn sửa đổi một loạt các mục trong một trình tự. Thay vì sửa đổi các giá trị một cách riêng biệt hoặc sử dụng vòng lặp for, bạn có thể sử dụng tính năng cắt lát
Ví dụ đơn giản, hãy thay thế hai phần tử đầu tiên của danh sách bằng hai phần tử khác
nums = [10, 100, 1000, 10_000, 100_000] second = nums[1] third = nums[2] print[second, third]1
đầu ra
nums = [10, 100, 1000, 10_000, 100_000] second = nums[1] third = nums[2] print[second, third]2
Như một ví dụ nâng cao hơn một chút, hãy biến mọi số thứ hai thành âm trong danh sách các số
nums = [10, 100, 1000, 10_000, 100_000] second = nums[1] third = nums[2] print[second, third]3
đầu ra
nums = [10, 100, 1000, 10_000, 100_000] second = nums[1] third = nums[2] print[second, third]4
Xóa phần tử với Slicing trong Python
Bạn có thể sử dụng tính năng cắt để loại bỏ các phạm vi mục trong một lần lặp. Để làm điều này, hãy sử dụng câu lệnh del có sẵn trên một lát cắt
Chẳng hạn, hãy xóa mọi phần tử thứ hai trong danh sách
nums = [10, 100, 1000, 10_000, 100_000] second = nums[1] third = nums[2] print[second, third]5
đầu ra
nums = [10, 100, 1000, 10_000, 100_000] second = nums[1] third = nums[2] print[second, third]6
Phần kết luận
Hôm nay bạn đã học cách cắt hoạt động trong Python
Tóm lại, cắt lát có nghĩa là truy cập nhiều phần tử trong một lần lặp cùng một lúc. Cắt lát trả về một chuỗi con của chuỗi gốc