Một khung lát có ba 'khe': bắt đầu, kết thúc và bước. . Bạn để trống, có một mặc định. [:] có nghĩa là: Toàn bộ. . [::-1] có nghĩa là: Bắt đầu ở cuối [trừ làm điều đó cho bạn], kết thúc khi không có gì rời đi và đi về phía sau 1.
Ký hiệu được sử dụng trong
a[::-1]
có nghĩa là đối với một chuỗi/danh sách/tuple đã cho, bạn có thể cắt đối tượng đã nói bằng cách sử dụng định dạng
[, , ]
Điều này có nghĩa là đối tượng sẽ cắt từng chỉ mục "bước" từ chỉ mục bắt đầu đã cho, cho đến khi chỉ số dừng [không bao gồm chỉ mục dừng] và trả lại cho bạn.
Trong trường hợp thiếu chỉ mục bắt đầu hoặc chỉ mục dừng, nó chiếm giá trị mặc định làm chỉ mục bắt đầu và chỉ mục dừng của chuỗi/danh sách/tuple đã cho. Nếu bước bị bỏ trống, thì nó sẽ lấy giá trị mặc định là 1 tức là nó đi qua mỗi chỉ mục.
Vì thế,
a = '1234'
print a[::2]
sẽ in
13
Bây giờ việc lập chỉ mục ở đây và cả số bước, hỗ trợ các số âm. Vì vậy, nếu bạn đưa ra một chỉ mục -1, nó sẽ dịch thành Len [A] -1 Index. Và nếu bạn đưa ra -x làm số bước, thì nó sẽ bước mọi giá trị x của chỉ số bắt đầu, cho đến khi chỉ số dừng theo hướng ngược lại. Ví dụ
a = '1234'
print a[3:0:-1]
Điều này sẽ trở lại
432
Lưu ý rằng nó không trả về 4321 bởi vì, chỉ số dừng không được bao gồm.
Bây giờ trong trường hợp của bạn,
str[int[a[::-1]]]
sẽ chỉ đảo ngược một số nguyên đã cho, được lưu trữ trong một chuỗi, sau đó chuyển đổi nó trở lại một chuỗi
tức là "1234" -> "4321" -> 4321 -> "4321"
Nếu những gì bạn đang cố gắng làm chỉ là đảo ngược chuỗi đã cho, thì chỉ cần một [::-1] sẽ hoạt động.
[, , ]
1 trong Python thực sự làm gì và tại sao bạn muốn sử dụng nó?[, , ]
1 Trong Python là một hoạt động lát cắt được sử dụng trên các chuỗi hoặc danh sách và nắm bắt tất cả các nội dung của chuỗi hoặc danh sách ngoại trừ ký tự hoặc phần tử cuối cùng.last character or element.Dưới đây là một số ví dụ chứng minh hoạt động của mã này với các chuỗi:
>>> my_string = "Why?" >>> my_string[:-1] 'Why'
Như bạn có thể thấy từ ví dụ mã đơn giản ở trên một biến
[, , ]
3 chứa một chuỗi kết thúc bằng một dấu hỏi. Bằng cách sử dụng thao tác lát cắt [, , ]
1, nó xuất ra toàn bộ chuỗi ngoại trừ ký tự cuối cùng trong chuỗi.last character in the string.Ở đây, một ví dụ khác sử dụng danh sách:
>>> my_list = [1, 2, 3]
>>> my_list[:-1]
[1, 2]
Như bạn có thể thấy từ ví dụ trên, nơi các danh sách được sử dụng cùng một thao tác xảy ra: mọi thứ được ghi lại từ danh sách ban đầu ngoại trừ phần tử cuối cùng.
Thay thế cho [, , ]
1
[, , ]
Một giải pháp thay thế cho việc sử dụng toán tử lát cắt khi xóa phần tử cuối cùng khỏi danh sách là sử dụng phương pháp danh sách tích hợp
[, , ]
6.Phương thức danh sách
[, , ]
6 chỉ lấy một tham số, tùy chọn, đại diện cho số chỉ mục của phần tử cụ thể trong danh sách bạn muốn xóa. Nếu không có số chỉ mục được chỉ định thì phương thức theo mặc định sẽ xóa phần tử cuối cùng trong danh sách.no index number is specified then the method by default removes the last element in the list.Ở đây, một ví dụ sử dụng phương thức danh sách
[, , ]
8:>>> my_list = [1, 2, 3]
>>> my_list.pop[]
3
>>> print[my_list]
[1, 2]
Có một sự khác biệt rất quan trọng để thực hiện ở đây so với hoạt động trước đây ở trên bằng cách sử dụng toán tử lát cắt
[, , ]
1. Lưu ý rằng trong khi cả hai tạo ra cùng một đầu ra mong muốn, biến danh sách trong đó phương thức [, , ]
8 đã được sử dụng đã biến đổi nội dung ban đầu của biến.Toán tử lát
[, , ]
1 là biểu thức tốc ký để tạo ra kết quả từ một chuỗi gốc hoặc biến danh sách để xóa ký tự cuối cùng trong một chuỗi hoặc phần tử cuối cùng trong danh sách.Hoạt động lát cắt sẽ không thay đổi [thay đổi vĩnh viễn] Biến chuỗi hoặc danh sách ban đầu. Điều này có nghĩa là nếu bạn muốn tiếp tục sử dụng kết quả của thao tác này mà bạn sẽ cần lưu trữ dữ liệu vào một biến mới.not mutate [permanently change] the original string or list variable. This means if you want to continue using the result of this operation that you will need to store the data onto a new variable.
Đây là một ví dụ:
[, , ]
0Ngược lại, nếu sử dụng một phương pháp thay thế, chẳng hạn như
[, , ]
6 trên một biến danh sách khi điều này được áp dụng, nó sẽ thay đổi vĩnh viễn nội dung của biến danh sách.Các biến đột biến bằng cách làm cho các thay đổi vĩnh viễn có thể khiến việc gỡ lỗi mã của bạn trở nên khó khăn.
Bản tóm tắt
Để xóa ký tự cuối cùng trong một chuỗi hoặc phần tử cuối cùng trong danh sách trong Python mà không làm biến đổi biến gốc, hãy sử dụng toán tử lát cắt
[, , ]
1.last character in a string or last
element in a list in Python without mutating the original variable use the slice operator [, , ]
1. Bằng cách sử dụng toán tử này, bạn có thể dễ dàng theo dõi nơi mọi lỗi có thể nằm trong mã Python của bạn và quá trình gỡ lỗi có thể đơn giản hơn rất nhiều để hiển thị nơi có lỗi.