Làm thế nào để bạn lật các từ trong python?
Chúng tôi được cung cấp một chuỗi làm đầu vào trong Python và nhiệm vụ của chúng tôi là đảo ngược các từ có trong chuỗi. Chúng tôi sẽ sử dụng các hàm chuỗi khác nhau trong Python để hoàn thành chương trình Show
Phạm vi
Làm thế nào để đảo ngược các từ trong một chuỗi Python?Trong Python, một chuỗi được tạo bằng cách đặt một dòng ký tự bên trong dấu nháy đơn, nháy kép hoặc nháy ba. Đảo ngược từ trong một chuỗi có nghĩa là chúng ta phải đảo ngược vị trí của tất cả các từ trong chuỗi đã cho ví dụChúng ta hãy xem xét một số ví dụ
Phương pháp - 1. Đảo ngược các từ riêng lẻ và sau đó đảo ngược toàn bộ chuỗiTrực giác của cách tiếp cận này là trước tiên đảo ngược từng từ có trong chuỗi riêng lẻ, Ví dụ. Bây giờ chúng ta hãy xem cách triển khai phương pháp này để đảo ngược các từ trong một chuỗi bằng Python
Để 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 3 và 4 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ó _______ 75 mạnh và bạn muốn đảo ngược nó một cách nhanh chóng để có được _______ 76. Bạn có thể sử dụng công cụ Python nào để trợ giúp? Các chuỗi là bất biến 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ính năng cắt để tạo trực tiếp 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 sẵn 0 để tạo một trình lặp mang lại các ký tự của chuỗi đầu vào theo thứ tự ngược lạiLoạ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à độ lệch. 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 5 Đảo ngược chuỗi với >>> letters = "ABCDEF" >>> letters[::-1] 'FEDCBA' >>> letters 'ABCDEF' 1 và >>> letters = "ABCDEF" >>> letters[::-1] 'FEDCBA' >>> letters 'ABCDEF' 0Cá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 0 cùng với 31. Nếu bạn chuyển một chuỗi tới 0, 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>>> 1Khi bạn gọi 33 với đối số là 34, 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ề 0 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 0 làm đối số cho 1>>> 3Trong 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 0 làm đối số cho 1. 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 0 và 1 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 62 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 3 và toán tử nối ( 64). 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 1 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 >>> 3Trong mỗi lần lặp, vòng lặp lấy một ký tự tiếp theo, 66, từ 67 và nối nó với nội dung hiện tại của 68. Lưu ý rằng ban đầu 68 chứa một chuỗi rỗng ( 50). Chuỗi trung gian mới sau đó được gán lại cho 68. Ở cuối vòng lặp, 68 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 4, 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>>> 6Ở đây, trước tiên bạn tính toán 54 của ký tự cuối cùng trong chuỗi đầu vào bằng cách sử dụng 55. Vòng lặp lặp lại từ 54 xuống và bao gồm cả 85. Trong mỗi lần lặp lại, bạn sử dụng toán tử gán tăng cường ( Đả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 >>> 5Trong 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 301. Cuộc gọi sử dụng lát cắt 302 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 67, 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 304, chứa ký tự đầu tiên của 67Mộ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 301, thì bạn sẽ nhận được một 307>>> 30Vượ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 308 từ 309. Theo mặc định, giá trị này thường là 310. Bạn có thể điều chỉnh giới hạn này bằng cách sử dụng 311 từ cùng một mô-đun, 309. 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 >>> letters = "ABCDEF" >>> letters[::-1] 'FEDCBA' >>> letters 'ABCDEF' 62 để đả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 62 từ 315 để đảo ngược chuỗi. Python's 62 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 62 để đảo ngược chuỗi>>> 31Trong ví dụ này, hàm 318 nhận hai chuỗi và nối chúng theo thứ tự ngược lại. Cuộc gọi đến 62 áp dụng 318 cho 67 trong một vòng lặp và xây dựng một bản sao đảo ngược của chuỗi ban đầuLặ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 >>> letters = "ABCDEF" >>> letters[::-1] 'FEDCBA' >>> letters 'ABCDEF' 0Cá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 0. 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 1 để 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 0 là hỗ trợ phép lặp ngược trên Python iterables. Với một chuỗi làm đối số, 0 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 0>>> 32Vòng lặp 3 trong ví dụ này rất dễ đọc. Tên của 0 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ì 0 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, >>> result = "" >>> for i in reversed(s): .. result += i .. >>> result 'egaugnal gnimmargorp tseb eht si nohtyP' 19Cách tiếp cận thứ hai để thực hiện phép lặp ngược trên chuỗi là sử dụng cú pháp cắt mở rộng mà bạn đã thấy trước đó trong ví dụ về 334. Mặc dù cách tiếp cận này không ủng hộ hiệu quả bộ nhớ và khả năng đọc, nhưng nó vẫn cung cấp một cách nhanh chóng để lặp lại một bản sao đảo ngược của một chuỗi hiện có>>> 33Trong ví dụ này, bạn áp dụng toán tử cắt trên 34 để tạo một bản sao đảo ngược của nó. Sau đó, bạn sử dụng chuỗi đảo ngược mới đó để nạp vòng lặp. Trong trường hợp này, bạn đang lặp lại một chuỗi đảo ngược mới, vì vậy giải pháp này ít hiệu quả về bộ nhớ hơn so với sử dụng 0Tạo chuỗi có thể đảo ngược tùy chỉnhNếu bạn đã từng thử đảo ngược danh sách Python, thì bạn biết rằng danh sách có một phương thức tiện dụng có tên là 337 để đảo ngược danh sách cơ bản tại chỗ. Vì các chuỗi là bất biến trong Python nên chúng không cung cấp một phương thức tương tựTuy nhiên, bạn vẫn có thể tạo một lớp con chuỗi tùy chỉnh bằng phương thức 337 bắt chước 339. Đây là cách bạn có thể làm điều đó>>> 34 340 kế thừa từ 341, là một lớp từ mô-đun 342. 341 là một trình bao bọc xung quanh kiểu dữ liệu tích hợp sẵn 344. Nó được thiết kế đặc biệt để tạo các lớp con của 344. 341 rất hữu ích khi bạn cần tạo các lớp giống như chuỗi tùy chỉnh với các chức năng bổ sung 341 cung cấp chức năng giống như một chuỗi thông thường. Nó cũng thêm một thuộc tính công khai có tên là 348 giữ và cấp cho bạn quyền truy cập vào đối tượng chuỗi được bao bọcBên trong 340, bạn tạo 337. Phương pháp này đảo ngược chuỗi được bọc trong 348 và gán lại kết quả cho 348. Từ bên ngoài, gọi 337 hoạt động giống như đảo ngược chuỗi tại chỗ. Tuy nhiên, những gì nó thực sự làm là tạo một chuỗi mới chứa dữ liệu ban đầu theo thứ tự ngược lạiĐây là cách hoạt động của 340 trong thực tế>>> 35Khi bạn gọi 337 trên 67, phương thức này hoạt động như thể bạn đang thực hiện một thay đổi tại chỗ của chuỗi bên dưới. Tuy nhiên, thực ra bạn đang tạo một chuỗi mới và gán nó trở lại chuỗi được bọc. Lưu ý rằng 67 hiện giữ chuỗi gốc theo thứ tự ngược lạiVì 341 cung cấp chức năng giống như lớp cha của nó là 344, nên bạn có thể sử dụng ngay lập tức 0 để thực hiện phép lặp ngược>>> 36Ở đây, bạn gọi 0 với 67 làm đối số để cung cấp vòng lặp 3. Cuộc gọi này hoạt động như mong đợi và trả về trình vòng lặp tương ứng vì 341 kế thừa hành vi được yêu cầu từ 344. Lưu ý rằng việc gọi 0 không ảnh hưởng đến chuỗi gốcSắp xếp chuỗi Python theo thứ tự đảo ngượcChủ đề cuối cùng bạn sẽ tìm hiểu là cách sắp xếp các ký tự của chuỗi theo thứ tự đảo ngược. Điều này có thể hữu ích khi bạn đang làm việc với các chuỗi không theo thứ tự cụ thể và bạn cần sắp xếp chúng theo thứ tự bảng chữ cái đảo ngược Để tiếp cận vấn đề này, bạn có thể sử dụng 2. Hàm tích hợp này trả về một danh sách chứa tất cả các mục của đầu vào có thể lặp lại theo thứ tự. Bên cạnh đầu vào có thể lặp lại, 2 cũng chấp nhận đối số từ khóa 369. Bạn có thể đặt đối số này thành 370 nếu bạn muốn đầu vào có thể lặp lại được sắp xếp theo thứ tự giảm dần>>> 37Khi bạn gọi 2 với một chuỗi làm đối số và 369 được đặt thành 370, bạn sẽ nhận được một danh sách chứa các ký tự của chuỗi đầu vào theo thứ tự đảo ngược hoặc giảm dần. Vì 2 trả về một đối tượng 375, nên bạn cần một cách để biến danh sách đó trở lại thành một chuỗi. Một lần nữa, bạn có thể sử dụng 1 giống như bạn đã làm trong các phần trước>>> 38Trong đoạn mã này, bạn gọi 1 trên một chuỗi rỗng, đóng vai trò là dấu phân cách. Đối số của 1 là kết quả của việc gọi 2 với 380 làm đối số và 369 được đặt thành 370Bạn cũng có thể tận dụng lợi thế của 2 để lặp qua một chuỗi theo thứ tự được sắp xếp và đảo ngược>>> 39Đối số 369 của 2 cho phép bạn sắp xếp các lần lặp, bao gồm cả chuỗi, theo thứ tự giảm dần. Vì vậy, nếu bạn cần các ký tự của chuỗi được sắp xếp theo thứ tự bảng chữ cái đảo ngược, thì 2 là dành cho bạnLoại bỏ các quảng cáoPhần kết luậnĐảo ngược và làm việc với các chuỗi theo thứ tự đảo ngược có thể là một nhiệm vụ phổ biến trong lập trình. Python cung cấp một bộ công cụ và kỹ thuật có thể giúp bạn thực hiện đảo ngược chuỗi một cách nhanh chóng và hiệu quả. Trong hướng dẫn này, bạn đã tìm hiểu về các công cụ và kỹ thuật đó cũng như cách tận dụng chúng trong các thử thách xử lý chuỗi của bạn Trong hướng dẫn này, bạn đã học cách
Mặc dù bản thân chủ đề này có thể không có nhiều trường hợp sử dụng thú vị, nhưng việc hiểu cách đảo ngược chuỗi có thể hữu ích trong các cuộc phỏng vấn mã hóa cho các vị trí cấp đầu vào. Bạn cũng sẽ thấy rằng việc nắm vững các cách khác nhau để đảo ngược chuỗi có thể giúp bạn thực sự khái niệm hóa tính bất biến của chuỗi trong Python, đây là một tính năng đáng chú ý của ngôn ngữ này Đánh dấu là đã hoàn thành 🐍 Thủ thuật Python 💌 Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python Gửi cho tôi thủ thuật Python » Giới thiệu về Leodanis Pozo Ramos Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác » Tìm hiểu thêm về LeodanisMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là Aldren Bartosz Sadie Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bậc thầy Kỹ năng Python trong thế giới thực Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bạn nghĩ sao? Đánh giá bài viết này Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì? Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi |