Lệnh đảo ngược trong python là gì?
Phương thức 96 trả về trình lặp đảo ngược của chuỗi đã cho. Nó giống như phương thức iter() nhưng theo thứ tự ngược lại. Bên trong, nó gọi phương thức 0 của lớp trình tự. Nếu đối tượng đã cho không phải là một dãy, thì ghi đè phương thức 0 trong lớp sẽ được sử dụng với hàm 96 Show
cú pháp
Thông sốtiếp theo. Trình tự đảo ngược Giá trị trả vềTrả về một đối tượng iterator truy cập chuỗi đã cho Ví dụ sau trả về trình vòng lặp đảo ngược của chuỗi chuỗi đã chỉ định Ví dụ. đảo ngược() Sao chép
đầu ra
Ở trên, 3 trả về một đối tượng của lớp trình lặp 4. Vì đây là một iterator, bạn có thể sử dụng phương thức 5 hoặc next() để truy cập các giá trị. Gọi phương thức 6 sau khi lấy phần tử cuối cùng sẽ gây ra lỗi 7Hàm 96 có thể được sử dụng với vòng lặp for, như hình bên dướiVí dụ. đảo ngược () với vòng lặp For Sao chép 0đầu ra 1Trình tự có thể là một danh sách, tuple, set hoặc dict. Sau đây nhận các trình vòng lặp đảo ngược của các lần lặp khác nhau Ví dụ. Các phần tử có thể đảo ngược Sao chép 2đầu ra 3Phương thức 96 trả về một đối tượng, có thể được chuyển đổi thành một danh sách, bộ dữ liệu hoặc được đặt để xem các phần tử của đối tượng được trả về, như được hiển thị bên dưới Khi bạn thường xuyên sử dụng các chuỗi Python trong mã của mình, bạn có thể phải làm việc với chúng theo thứ tự ngược lại. Python bao gồm một số công cụ và kỹ thuật tiện dụng có thể giúp bạn trong những tình huống này. Với chúng, bạn sẽ có thể tạo các bản sao đảo ngược của các chuỗi hiện có một cách nhanh chóng và hiệu quả Biết về các công cụ và kỹ thuật đảo ngược chuỗi này trong Python sẽ giúp bạn cải thiện trình độ của mình với tư cách là nhà phát triển Python Trong hướng dẫn này, bạn sẽ học cách
Để tận dụng tối đa hướng dẫn này, bạn nên biết kiến thức cơ bản về chuỗi, vòng lặp 43 và 44 cũng như đệ quyTải xuống miễn phí. Nhận một chương mẫu từ Python Basics. Giới thiệu thực tế về Python 3 để xem cách bạn có thể đi từ trình độ mới bắt đầu lên trình độ trung cấp trong Python với một chương trình giảng dạy hoàn chỉnh, cập nhật về Python 3. 8 Đảo ngược chuỗi với các công cụ Python cốt lõiLàm việc với các chuỗi Python theo thứ tự ngược lại có thể là một yêu cầu trong một số tình huống cụ thể. Ví dụ: giả sử bạn có _______ 145 mạnh và bạn muốn đảo ngược nó một cách nhanh chóng để có được _______ 146. Bạn có thể sử dụng công cụ Python nào để trợ giúp? Các chuỗi có trong Python, do đó, không thể đảo ngược một chuỗi đã cho tại chỗ. Bạn sẽ cần tạo các bản sao đảo ngược của các chuỗi mục tiêu của mình để đáp ứng yêu cầu Python cung cấp hai cách đơn giản để đảo ngược chuỗi. Vì các chuỗi là các chuỗi nên chúng có thể lập chỉ mục, có thể cắt và có thể lặp lại. Các tính năng này cho phép bạn sử dụng để tạo trực tiếp một bản sao của một chuỗi đã cho theo thứ tự ngược lại. Tùy chọn thứ hai là sử dụng hàm tích hợp để tạo một trình vòng lặp mang lại các ký tự của chuỗi đầu vào theo thứ tự ngược lại Loại bỏ các quảng cáoĐảo ngược chuỗi thông qua cắt látCắt lát là một kỹ thuật hữu ích cho phép bạn trích xuất các mục từ một chuỗi nhất định bằng cách sử dụng các kết hợp chỉ số nguyên khác nhau được gọi là hiệu số. Khi nói đến việc cắt chuỗi, các độ lệch này xác định chỉ mục của ký tự đầu tiên trong quá trình cắt, chỉ mục của ký tự dừng quá trình cắt và một giá trị xác định số lượng ký tự bạn muốn chuyển qua trong mỗi lần lặp. Để cắt một chuỗi, bạn có thể sử dụng cú pháp sau 1Hiệu số của bạn là 48, 49 và 40. Biểu thức này trích xuất tất cả các ký tự từ 48 đến 42 bởi 40. Bạn sẽ nhìn sâu hơn vào ý nghĩa của tất cả những điều này chỉ trong giây látTất cả các phần bù là tùy chọn và chúng có các giá trị mặc định sau OffsetGiá trị mặc định 48 45 49 47 40 49Ở đây, 48 đại diện cho chỉ mục của ký tự đầu tiên trong lát cắt, trong khi 49 giữ chỉ mục dừng hoạt động cắt lát. Phần bù thứ ba, 40, cho phép bạn quyết định số lượng ký tự mà phần cắt sẽ nhảy qua trên mỗi lần lặpGhi chú. Thao tác cắt lát kết thúc khi nó đạt đến chỉ số bằng hoặc lớn hơn 49. Điều này có nghĩa là nó không bao giờ bao gồm mục tại chỉ mục đó, nếu có, trong phần cuối cùngGiá trị bù 40 cho phép bạn tinh chỉnh cách bạn trích xuất các ký tự mong muốn từ một chuỗi trong khi bỏ qua các ký tự khác>>> 9Ở đây, trước tiên bạn cắt 05 mà không cung cấp các giá trị offset rõ ràng để có được bản sao đầy đủ của chuỗi gốc. Để đạt được điều này, bạn cũng có thể sử dụng một phép cắt bỏ dấu hai chấm thứ hai ( 06). Với 40 bằng với 08, phép cắt sẽ lấy mọi ký tự khác từ chuỗi mục tiêu. Bạn có thể chơi xung quanh với các độ lệch khác nhau để hiểu rõ hơn về cách thức hoạt động của việc cắt látTại sao việc cắt và phần bù thứ ba này lại liên quan đến việc đảo ngược chuỗi trong Python? . Nếu bạn cung cấp giá trị âm cho 40, thì quá trình cắt sẽ chạy ngược lại, nghĩa là từ phải sang tráiVí dụ: nếu bạn đặt 40 bằng 72, thì bạn có thể tạo một lát cắt truy xuất tất cả các ký tự theo thứ tự ngược lại>>> 4Phép cắt này trả về tất cả các ký tự từ đầu bên phải của chuỗi, trong đó chỉ số bằng 73, quay trở lại đầu bên trái của chuỗi, trong đó chỉ số là 45. Khi bạn sử dụng thủ thuật này, bạn sẽ nhận được một bản sao của chuỗi gốc theo thứ tự ngược lại mà không ảnh hưởng đến nội dung gốc của 05Một kỹ thuật khác để tạo một bản sao đảo ngược của một chuỗi hiện có là sử dụng. Chữ ký của chức năng tích hợp này là như sau 4Hàm này nhận ba đối số, với cùng ý nghĩa của các phần bù trong toán tử cắt và trả về một đối tượng đại diện cho tập hợp các chỉ số là kết quả của việc gọi 77Bạn có thể sử dụng 76 để mô phỏng việc cắt lát 79 và đảo ngược chuỗi của bạn một cách nhanh chóng. Hãy tiếp tục và chạy lệnh gọi sau tới 76 bên trong dấu ngoặc vuông>>> 0Truyền 81 cho hai đối số đầu tiên của 76 cho hàm biết rằng bạn muốn dựa vào hành vi mặc định bên trong của nó, giống như một phép cắt tiêu chuẩn không có giá trị cho 48 và 49. Nói cách khác, chuyển 81 đến 48 và 49 có nghĩa là bạn muốn một lát cắt từ đầu bên trái sang đầu bên phải của chuỗi cơ bảnLoại bỏ các quảng cáoĐảo ngược chuỗi với mystr = "Hello" rev_itr = reversed(mystr) print(type(rev_itr)) print(rev_itr.__next__()) # getting item using __next__() print(next(rev_itr)) # getting item using next() which calls __next__() print(next(rev_itr)) print(next(rev_itr)) print(next(rev_itr)) #print(next(rev_itr)) # raise StopIteration error 41 và mystr = "Hello" rev_itr = reversed(mystr) print(type(rev_itr)) print(rev_itr.__next__()) # getting item using __next__() print(next(rev_itr)) # getting item using next() which calls __next__() print(next(rev_itr)) print(next(rev_itr)) print(next(rev_itr)) #print(next(rev_itr)) # raise StopIteration error 40Cách thứ hai và được cho là cách tiếp cận Pythonic nhất để đảo ngược chuỗi là sử dụng 40 cùng với. Nếu bạn chuyển một chuỗi tới 40, bạn sẽ nhận được một trình vòng lặp mang lại các ký tự theo thứ tự ngược lại>>> 7Khi bạn gọi 03 với đối số là 04, bạn sẽ nhận được từng ký tự từ đầu bên phải của chuỗi gốcMột điểm quan trọng cần lưu ý về 40 là trình vòng lặp kết quả mang lại các ký tự trực tiếp từ chuỗi gốc. Nói cách khác, nó không tạo ra một chuỗi đảo ngược mới mà đọc ngược các ký tự từ chuỗi hiện có. Hành vi này khá hiệu quả về mức tiêu thụ bộ nhớ và có thể là một chiến thắng cơ bản trong một số ngữ cảnh và tình huống, chẳng hạn như phép lặpBạn có thể sử dụng iterator mà bạn nhận được từ việc gọi trực tiếp 40 làm đối số cho 41>>> 8Trong biểu thức một dòng này, bạn chuyển trực tiếp kết quả của việc gọi 40 làm đối số cho 41. Kết quả là bạn nhận được một bản sao đảo ngược của chuỗi đầu vào ban đầu. Sự kết hợp giữa 40 và 41 này là một lựa chọn tuyệt vời để đảo ngược chuỗiTạo chuỗi đảo ngược bằng tayCho đến giờ, bạn đã tìm hiểu về các công cụ và kỹ thuật cốt lõi của Python để đảo ngược chuỗi một cách nhanh chóng. Hầu hết thời gian, chúng sẽ là con đường của bạn. Tuy nhiên, bạn có thể cần đảo ngược một chuỗi bằng tay tại một số thời điểm trong cuộc phiêu lưu viết mã của mình Trong phần này, bạn sẽ học cách đảo ngược chuỗi bằng cách sử dụng các vòng lặp và đệ quy rõ ràng. Kỹ thuật cuối cùng sử dụng phương pháp lập trình hàm với sự trợ giúp của hàm 02 của PythonĐảo ngược chuỗi trong một vòng lặpKỹ thuật đầu tiên bạn sẽ sử dụng để đảo ngược một chuỗi liên quan đến vòng lặp 43 và toán tử nối ( 04). Với hai chuỗi là toán hạng, toán tử này trả về một chuỗi mới là kết quả của việc nối các chuỗi ban đầu. Toàn bộ hoạt động được gọi là nốiGhi chú. Sử dụng 41 là cách tiếp cận được đề xuất để nối các chuỗi trong Python. Nó sạch sẽ, hiệu quả và PythonicĐây là một hàm lấy một chuỗi và đảo ngược nó trong một vòng lặp bằng phép nối >>> 0Trong mỗi lần lặp, vòng lặp lấy một ký tự tiếp theo, 06, từ 07 và nối nó với nội dung hiện tại của 08. Lưu ý rằng ban đầu 08 chứa một chuỗi rỗng ( 90). Chuỗi trung gian mới sau đó được gán lại cho 08. Ở cuối vòng lặp, 08 giữ một chuỗi mới dưới dạng bản sao đảo ngược của chuỗi gốcGhi chú. Vì chuỗi Python là kiểu dữ liệu bất biến, bạn nên nhớ rằng các ví dụ trong phần này sử dụng một kỹ thuật lãng phí. Họ chỉ dựa vào việc tạo các chuỗi trung gian liên tiếp để loại bỏ chúng trong lần lặp lại tiếp theo Nếu bạn thích sử dụng vòng lặp 44, thì đây là những gì bạn có thể làm để tạo một bản sao đảo ngược của một chuỗi đã cho>>> 0Ở đây, trước tiên bạn tính toán 94 của ký tự cuối cùng trong chuỗi đầu vào bằng cách sử dụng 95. Vòng lặp lặp lại từ 94 xuống và bao gồm cả 45. Trong mỗi lần lặp lại, bạn sử dụng toán tử ( 98) để tạo một chuỗi trung gian nối nội dung của 08 với ký tự tương ứng từ 07. Một lần nữa, kết quả cuối cùng là một chuỗi mới xuất phát từ việc đảo ngược chuỗi đầu vàoLoại bỏ các quảng cáoĐảo ngược chuỗi với đệ quyBạn cũng có thể sử dụng đệ quy để đảo ngược chuỗi. Đệ quy là khi một hàm gọi chính nó trong phần thân của chính nó. Để ngăn chặn đệ quy vô hạn, bạn nên cung cấp trường hợp cơ sở tạo ra kết quả mà không cần gọi lại hàm. Thành phần thứ hai là trường hợp đệ quy, bắt đầu vòng lặp đệ quy và thực hiện hầu hết các tính toán Đây là cách bạn có thể định nghĩa một hàm đệ quy trả về một bản sao đảo ngược của một chuỗi đã cho >>> 9Trong ví dụ này, trước tiên bạn kiểm tra trường hợp cơ sở. Nếu chuỗi đầu vào có đúng một ký tự, bạn trả lại chuỗi cho người gọi Câu lệnh cuối cùng, là trường hợp đệ quy, gọi chính 901. Cuộc gọi sử dụng lát cắt 902 của chuỗi đầu vào làm đối số. Lát này chứa tất cả các ký tự trong 07, ngoại trừ ký tự đầu tiên. Bước tiếp theo là thêm kết quả của lời gọi đệ quy cùng với chuỗi ký tự đơn 904, chứa ký tự đầu tiên của 07Một vấn đề quan trọng cần lưu ý trong ví dụ trên là nếu bạn chuyển một chuỗi dài làm đối số cho 901, thì bạn sẽ nhận được một 907>>> 90Vượt qua giới hạn đệ quy mặc định của Python là một vấn đề quan trọng mà bạn nên xem xét trong mã của mình. Tuy nhiên, nếu bạn thực sự cần sử dụng đệ quy, thì bạn vẫn có tùy chọn đặt giới hạn đệ quy theo cách thủ công Bạn có thể kiểm tra giới hạn đệ quy của trình thông dịch Python hiện tại của mình bằng cách gọi từ. Theo mặc định, giá trị này thường là 910. Bạn có thể điều chỉnh giới hạn này bằng cách sử dụng từ cùng một mô-đun, 909. Với các chức năng này, bạn có thể định cấu hình môi trường Python để giải pháp đệ quy của bạn có thể hoạt động. Đi trước và cung cấp cho nó một thửSử dụng mystr = "Hello" rev_itr = reversed(mystr) print(type(rev_itr)) print(rev_itr.__next__()) # getting item using __next__() print(next(rev_itr)) # getting item using next() which calls __next__() print(next(rev_itr)) print(next(rev_itr)) print(next(rev_itr)) #print(next(rev_itr)) # raise StopIteration error 02 để đảo ngược chuỗiNếu bạn thích sử dụng phương pháp lập trình chức năng, bạn có thể sử dụng 02 từ để đảo ngược chuỗi. Python's 02 lấy chức năng gấp hoặc rút gọn và có thể lặp lại làm đối số. Sau đó, nó áp dụng hàm được cung cấp cho các mục trong đầu vào có thể lặp lại và trả về một giá trị tích lũy duy nhấtĐây là cách bạn có thể tận dụng lợi thế của 02 để đảo ngược chuỗi>>> 91Trong ví dụ này, hàm 918 nhận hai chuỗi và nối chúng theo thứ tự ngược lại. Cuộc gọi đến 02 áp dụng 918 đến 07 trong một vòng lặp và tạo một bản sao đảo ngược của chuỗi gốcLặp qua chuỗi ngượcĐôi khi bạn có thể muốn lặp qua các chuỗi hiện có theo thứ tự ngược lại, một kỹ thuật thường được gọi là lặp ngược. Tùy thuộc vào nhu cầu cụ thể của bạn, bạn có thể thực hiện phép lặp ngược trên chuỗi bằng cách sử dụng một trong các tùy chọn sau
Phép lặp ngược được cho là trường hợp sử dụng phổ biến nhất của các công cụ này, vì vậy trong một số phần sau, bạn sẽ tìm hiểu về cách sử dụng chúng trong ngữ cảnh lặp Chức năng tích hợp mystr = "Hello" rev_itr = reversed(mystr) print(type(rev_itr)) print(rev_itr.__next__()) # getting item using __next__() print(next(rev_itr)) # getting item using next() which calls __next__() print(next(rev_itr)) print(next(rev_itr)) print(next(rev_itr)) #print(next(rev_itr)) # raise StopIteration error 40Cách tiếp cận Pythonic và dễ đọc nhất để lặp qua một chuỗi theo thứ tự ngược lại là sử dụng 40. Bạn đã biết về chức năng này một lúc trước khi bạn sử dụng nó cùng với 41 để tạo các chuỗi đảo ngượcTuy nhiên, mục đích chính và trường hợp sử dụng của 40 là hỗ trợ lặp ngược trên Python iterables. Với một chuỗi làm đối số, 40 trả về một trình lặp tạo ra các ký tự từ chuỗi đầu vào theo thứ tự ngược lạiĐây là cách bạn có thể lặp qua một chuỗi theo thứ tự ngược lại với 40>>> 92Vòng lặp 43 trong ví dụ này rất dễ đọc. Tên của 40 thể hiện rõ ràng ý định của nó và truyền đạt rằng chức năng không tạo ra bất kỳ tác dụng phụ nào đối với dữ liệu đầu vào. Vì 40 trả về một trình vòng lặp nên vòng lặp cũng hiệu quả đối với việc sử dụng bộ nhớLoại bỏ các quảng cáoToán tử cắt lát, |