Tôi mới dùng python và tôi muốn biết làm cách nào để trao đổi hai ký tự trong một chuỗi. Tôi biết chuỗi là bất biến vì vậy tôi cần phải tìm một cách để tạo ra một chuỗi mới với các nhân vật hoán đổi. Cụ thể, một phương pháp chung có một chuỗi và hai chỉ số i, j và hoán đổi ký tự trên i với j.Hoán đổi các ký tự trong chuỗi
6
A
Trả lời
12
Khi bạn nói đúng, các chuỗi không thay đổi và không thể sửa đổi tại chỗ - nhưng chúng ta có thể tạo một chuỗi mới với các ký tự được hoán đổi. Dưới đây là một ý tưởng: chúng ta hãy chuyển đổi chuỗi thành một danh sách, trao đổi các yếu tố trong danh sách và sau đó chuyển đổi danh sách lại thành một chuỗi:
def swap(s, i, j):
lst = list(s);
lst[i], lst[j] = lst[j], lst[i]
return ''.join(lst)
Một thi thể sẽ được xử lý chuỗi bằng lát và lập chỉ mục:
def swap(s, i, j):
return ''.join((s[:i], s[j], s[i+1:j], s[i], s[j+1:]))
Dù bằng cách nào, nó hoạt động như mong đợi:
swap('abcde', 1, 3)
=> 'adcbe'
Các vấn đề liên quan
- 1. Kotlin: cách hoán đổi ký tự trong chuỗi
- 2. Di chuyển ký tự theo ký tự trong chuỗi và hoán đổi khoảng trắng với python
- 3. phát hoán vị đệ quy cho các ký tự
- 4. Các chuỗi ký tự bằng & & + trong VB.Net
- 5. Python chuyển đổi chuỗi ký tự thành chuỗi
- 6. Chuyển đổi codepoint unicode thành chuỗi ký tự trong Ruby
- 7. Chuyển đổi các ký tự trong chuỗi c thành chuỗi thoát của chúng
- 8. Mã hóa ký tự và chuỗi ký tự trong C++
- 9. Hoán vị phần tử cụ thể trong một mảng các ký tự trong JAVA?
- 10. Chuyển đổi unicode ký tự Cyrillic để chuỗi trong python
- 11. Ký tự dấu và ký tự trong chuỗi SQL
- 12. Tìm các ký tự chung trong chuỗi các chuỗi, theo đúng thứ tự
- 13. GUID, chuỗi ký tự 30 ký tự
- 14. Thoát các chuỗi ký tự JavaScript trong các khung nhìn
- 15. Chuỗi ký tự và ký tự trong Java
- 16. Ký tự đô la ký tự trong chuỗi
- 17. Chuyển ngữ/chuyển đổi các ký tự trong NSString
- 18. Kết hợp các chuỗi ký tự
- 19. Phát hiện các ký tự tiếng Nhật trong chuỗi Java
- 20. Perl: Sắp xếp các ký tự trong một chuỗi
- 21. Cắt các ký tự từ một chuỗi
- 22. Xóa các ký tự từ chuỗi
- 23. Có một chuỗi các hoán đổi sẽ tạo ra tất cả các hoán vị có thể không?
- 24. Lặp lại các ký tự trong chuỗi trong mysql
- 25. Lặp qua các ký tự trong một chuỗi trong VB.NET
- 26. Ruby: Thoát các ký tự đặc biệt trong một chuỗi
- 27. Ký tự Unicode chuỗi
- 28. Tích phân Byte hoán đổi trong C++
- 29. Chèn khoảng cách giữa các ký tự của hai chuỗi sửa đổi thứ tự của chúng
- 30. Làm thế nào để xóa tất cả các ký tự sau một ký tự trong chuỗi?
Tuyệt vời, tôi đã nghĩ đến việc một số cách để làm điều đó thông qua một danh sách. Nó có hiệu quả về mặt thời gian không? bởi vì tôi phải đặt nó trong một chương trình quan trọng. – Wajahat
@Wajahat Đủ tốt rồi. Tôi thích tùy chọn đầu tiên vì nó tạo ra các chuỗi trung gian hơn, nhưng như thường lệ thì tốt hơn nếu chúng ta cấu hình mã trước tiên trước khi cố gắng tối ưu hóa nó sớm. –
Chỉ cần lưu ý cho bất kỳ ai muốn sử dụng mã này, cách thứ hai được thực hiện bằng các lát và chỉ mục không hoạt động đúng với các chỉ mục tiêu cực trong python3. Tôi khuyên bạn nên sử dụng phương pháp đầu tiên. – Mason