Hướng dẫn slice operator in python reverse - toán tử lát trong ngược lại python

Trong Python, [::-1] có nghĩa là đảo ngược một chuỗi, danh sách hoặc bất kỳ điều gì có thể lặp lại với một đơn đặt hàng. [::-1] means reversing a string, list, or any iterable with an ordering.

Ví dụ:

hello = "Hello world"
nums = [1, 2, 3, 4]

print(hello[::-1])
print(nums[::-1])

Output:

dlrow olleH
[4, 3, 2, 1]

Đây là câu trả lời nhanh chóng.

Tuy nhiên, đảo ngược một danh sách trong Python từng là thứ tôi luôn phải tìm kiếm vì tôi không bao giờ muốn tìm hiểu cách nó thực sự hoạt động. Nhưng bây giờ tôi hiểu cơ chế, nó không có trí tuệ.

Để thực sự hiểu làm thế nào [::-1] hoạt động trong Python, bạn cần hiểu những gì đang cắt trong Python. Và trước khi bạn có thể hiểu việc cắt lát là gì, bạn cần hiểu những gì là lập chỉ mục và đặc biệt là lập chỉ mục tiêu cực. [::-1] works in Python, you need to understand what is slicing in Python. And before you can understand what slicing is, you need to understand what is indexing and especially negative indexing.

Lập chỉ mục trong Python

Để truy cập một phần tử trong một python có thể, chẳng hạn như danh sách, bạn cần sử dụng một chỉ mục tương ứng với vị trí của phần tử.

Trong Python, lập chỉ mục là không dựa trên. Điều này có nghĩa là phần tử đầu tiên có 0 là chỉ số của nó, phần tử thứ hai có 1 là chỉ số của nó, v.v.

Hãy để chứng minh lập chỉ mục với danh sách. Ở đây chúng tôi có một danh sách các số mà chúng tôi muốn truy cập vào các yếu tố thứ 1 và 2. Để làm điều này, chúng ta cần sử dụng các chỉ mục 0 và 1 trong dấu ngoặc vuông để truy cập các giá trị từ danh sách.

nums = [1, 2, 3, 4]

first = nums[0]
second = nums[1]

print(first, second)

Output:

1 2

Cùng một chỉ mục hoạt động với các vòng lặp khác, chẳng hạn như chuỗi, bộ dữ liệu và từ điển.

Ví dụ: hãy để truy cập vào các ký tự của chuỗi với các chỉ mục:

word = "Hello"

first = word[0]
second = word[1]

print(first, second)

Output:

H e

Lập chỉ mục tiêu cực trong Python

Trong Python, cũng có thể sử dụng lập chỉ mục âm để truy cập các giá trị của một chuỗi.

Lập chỉ mục tiêu cực truy cập các mục so với cuối chuỗi. Chỉ mục -1 đọc phần tử cuối cùng, -2 phần cuối cùng thứ hai, v.v.

Ví dụ: hãy để đọc số cuối cùng và số cuối cùng thứ hai từ danh sách các số:

nums = [1, 2, 3, 4]

last = nums[-1]
second_last = nums[-2]

print(last, second_last)

Output:

4 3

Bây giờ bạn đã hiểu cách lập chỉ mục hoạt động trong Python. Hãy nói chuyện tiếp theo về việc cắt lát.

Cắt lát trong Python

Trong Python, cắt lát cho phép truy cập các phần của chuỗi, chẳng hạn như chuỗi hoặc danh sách. Điều này làm cho nó có thể truy cập, sửa đổi và xóa các mục theo cách có thể đọc được và súc tích.

Cắt lát hoạt động tương tự như lập chỉ mục, nhưng thay vì truy cập một giá trị duy nhất, nhiều giá trị được truy cập.

Cắt sử dụng lập chỉ mục để truy cập vào phạm vi của các yếu tố. Các chỉ mục này cũng dựa trên không.

Cú pháp cắt

Bạn có thể cắt các phép lặp trong Python theo hai cách có thể:

sequence[start:stop]

Bằng cách này, bạn truy cập vào một loạt các phần tử bắt đầu khi bắt đầu và kết thúc một trước khi chỉ mục dừng. Nói cách khác, nó trả về chuỗi [Bắt đầu], trình tự [kết thúc - 1] và mọi thứ giữa.start and ending one before the stop index. In other words, it returns sequence[start], sequence[end – 1] and everything between.

Một cách khác để cắt lặp trong Python là:

sequence[start:stop:step]

Điều này có nghĩa là bạn có được một loạt các yếu tố từ đầu đến dừng với kích thước bước của bước. Ví dụ: với bước 2, mỗi phần tử thứ hai trong phạm vi đó được trả về.start to stop with a step size of the step. For example, with a step of 2, every second element in that range is returned.

Ví dụ, hãy để Lừa nhận được các yếu tố thứ 4, 5 và 6 từ danh sách các số:

dlrow olleH
[4, 3, 2, 1]
0

Output:

dlrow olleH
[4, 3, 2, 1]
1

Một ví dụ khác, hãy để Lôi nhận được mỗi giá trị thứ hai giữa các yếu tố thứ 4 và 8 của danh sách. Để làm điều này, chúng tôi cũng cần chỉ định bước ngoài việc bắt đầu và dừng lại.step in addition to start and stop.

dlrow olleH
[4, 3, 2, 1]
2

Output:

dlrow olleH
[4, 3, 2, 1]
3

Cắt tiêu cực trong Python

Tương tự như lập chỉ mục tiêu cực, Python cũng hỗ trợ cắt tiêu cực. Điều này có nghĩa là bạn có thể bắt đầu cắt từ cuối chuỗi.

Ví dụ: hãy để truy cập vào 3 giá trị cuối cùng của danh sách:

dlrow olleH
[4, 3, 2, 1]
4

Output:

dlrow olleH
[4, 3, 2, 1]
1

Ở đây, việc cắt bắt đầu tại Index -4 là yếu tố cuối cùng thứ 4 của danh sách. Việc cắt kết thúc ở mục cuối cùng, ở chỉ mục -1.

Ngoài ra, kích thước bước có thể là một giá trị âm. Bằng cách này, hướng cắt được đảo ngược. Điều này có nghĩa là việc cắt bắt đầu từ chuỗi [Dừng + 1] và dừng ở trình tự [bắt đầu] giá trị.sequence[stop + 1] and stops at the sequence[start] value.

Ví dụ, hãy để Lừa nhận được các yếu tố thứ 5, 4 và 3 từ danh sách các số:

dlrow olleH
[4, 3, 2, 1]
6

Output:

dlrow olleH
[4, 3, 2, 1]
7

Để làm rõ cách thức hoạt động của nó:

  • Bước là tiêu cực, vì vậy việc cắt lát được đảo ngược.step is negative, so the slicing is reversed.
  • Điểm dừng là 1 nên việc cắt giảm ở 1+1 = phần tử thứ 2.stop is 1 so the slicing stops at 1+1 = 2nd element.
  • Bắt đầu là 4, vì vậy việc cắt bắt đầu ở chỉ số 4, nghĩa là ở phần tử thứ 5.start is 4, so the slicing starts at the index 4, that is, at the 5th element.

Bỏ qua bắt đầu và dừng lại không cắt

Nếu bạn muốn bắt đầu cắt từ đầu chuỗi, bạn có thể bỏ ra giá trị bắt đầu.start value.

Chẳng hạn, hãy để Lừa nhận được 4 giá trị đầu tiên của danh sách. Để làm điều này, bạn có thể bỏ 0 khi bắt đầu và chỉ chỉ định 4 là điểm dừng:start, and only specify 4 as the stop:

dlrow olleH
[4, 3, 2, 1]
8

Output:

dlrow olleH
[4, 3, 2, 1]
9

Ngoài ra, nếu bạn muốn cắt một chuỗi từ một số điểm cho đến cuối chuỗi, bạn có thể bỏ qua giá trị dừng.stop value.

Chẳng hạn, hãy để Lôi nhận được tất cả các giá trị từ giá trị thứ 3 từ danh sách các số. Để làm điều này, bạn chỉ cần chỉ định Chỉ số bắt đầu 2 và bỏ qua điểm dừng:start index 2 and leave out the stop:

nums = [1, 2, 3, 4]

first = nums[0]
second = nums[1]

print(first, second)
0

Output:

nums = [1, 2, 3, 4]

first = nums[0]
second = nums[1]

print(first, second)
1

Bây giờ, nếu bạn muốn cắt toàn bộ danh sách, đó là trả về danh sách như là, bạn có thể bỏ ra cả bắt đầu và chỉ mục dừng.start and the stop indexes.

Ví dụ:

nums = [1, 2, 3, 4]

first = nums[0]
second = nums[1]

print(first, second)
2

Output:

nums = [1, 2, 3, 4]

first = nums[0]
second = nums[1]

print(first, second)
3

Điều này trả về lát cắt là toàn bộ danh sách.

Mặc dù bỏ qua bắt đầu và dừng lại theo cách này là vô dụng, nhưng có một cách có ý nghĩa bạn cũng có thể sử dụng nó.start and stop this way is useless, there is a meaningful way you can use it too.

Chẳng hạn, để có được mỗi giá trị thứ hai từ danh sách, hãy cắt danh sách mà không cần bắt đầu và dừng giá trị nhưng chỉ định một bước:start and stop values but specify a step:

nums = [1, 2, 3, 4]

first = nums[0]
second = nums[1]

print(first, second)
4

Đầu ra:

nums = [1, 2, 3, 4]

first = nums[0]
second = nums[1]

print(first, second)
5

Bạn có thể thấy nơi chúng ta sẽ đi…

Phần [::-1]

Để đảo ngược danh sách trong Python, bạn có thể sử dụng cắt tiêu cực:

  • Khi bạn muốn cắt toàn bộ danh sách, bạn có thể bỏ qua hoàn toàn và dừng các giá trị.start and stop values altogether.
  • Để đảo ngược việc cắt, chỉ định giá trị bước âm.step value.
  • Vì bạn muốn đưa mỗi giá trị vào danh sách đảo ngược, kích thước bước phải là -1.

Đây là cách nó trông trong mã.

nums = [1, 2, 3, 4]

first = nums[0]
second = nums[1]

print(first, second)
6

Đầu ra:

nums = [1, 2, 3, 4]

first = nums[0]
second = nums[1]

print(first, second)
7

Bạn có thể thấy nơi chúng ta sẽ đi…[::-1] does!

Phần [::-1][::-1] slices a Python list from the last value to the first value by taking steps of size 1 backward.

Để đảo ngược danh sách trong Python, bạn có thể sử dụng cắt tiêu cực:

Khi bạn muốn cắt toàn bộ danh sách, bạn có thể bỏ qua hoàn toàn và dừng các giá trị.

Để đảo ngược việc cắt, chỉ định giá trị bước âm. [::-1] in Python.

Vì bạn muốn đưa mỗi giá trị vào danh sách đảo ngược, kích thước bước phải là -1.[::-1] means you create a slice of a sequence that traverses the whole sequence starting from the end of it.

Đây là cách nó trông trong mã.sequence[start:stop:step] syntax. However, when you want to go from the beginning of the sequence to the end of it, you can omit start and stop. To indicate you want to start slicing from the end and end at the start, specify a negative step.

Điều này trả về một phiên bản đảo ngược của danh sách ban đầu. Đây chính xác là những gì [::-1] làm!

Để tóm tắt lại, [::-1] cắt một danh sách python từ giá trị cuối cùng đến giá trị đầu tiên bằng cách thực hiện các bước có kích thước 1 ngược.

(Lưu ý cách mọi thứ bạn học có thể được sử dụng với các phép lặp Python khác, chẳng hạn như chuỗi hoặc bộ dữ liệu.)

Sự kết luận

Người vận hành lát cắt nào sẽ đảo ngược danh sách?

Bây giờ, khi nói đến việc sử dụng cắt lát để đảo ngược danh sách, bạn sẽ cần sử dụng toán tử cắt ngược [::-1] cú pháp.Điều này đặt bước thành -1 và nhận tất cả các mục trong danh sách theo thứ tự ngược lại.Toán tử cắt không sửa đổi danh sách ban đầu.reverse slicing operator [::-1] syntax. This sets the step to -1 and gets all items in the list in reverse order. The slicing operator does not modify the original list.

Hoạt động lát cắt nào sẽ đảo ngược danh sách trong Python?

Trong Python, một hàm tích hợp có tên Reverse () được sử dụng để đảo ngược danh sách.Cách đơn giản và nhanh chóng này để đảo ngược danh sách đòi hỏi ít bộ nhớ.Cú pháp: list_name.Reversion () ở đây, list_name có nghĩa là bạn phải viết tên của danh sách, phải được đảo ngược.reverse() is used to reverse the list. This simple and quick way to reverse a list requires little memory. Syntax: list_name. reverse() Here, list_name means you have to write the list's name, which has to be reversed.