Replace In Python3 - Programming - Dạy Nhau Học Trang chủ » Hàm Thay Thế Trong Python » Replace In Python3 - Programming - Dạy Nhau Học Có thể bạn quan tâm Hàm Thay Thế Trong Vba Hàm Thay Thế Unique Trong Excel Hàm Thay Thế Vlookup Trong Excel Hàm Thiên Nô Bách Hợp Hàm Thiên Nô Bách Hợp Tập 1 Replace in python3 programming python Nobita1 (.) March 9, 2020, 7:52pm #1 mọi người ơi, giờ mình có một vấn đề thế này. Ví dụ mình có từ ‘nhanh’, mình có một cái map biến ‘nh’ thành ‘hn’ mình muốn từ này có thể biến đổi thành: hnanh, nhahn hoặc hnahn. Mình có tìm thấy hàm replace trong python thì nó lại replace tất cá các khả năng xẩy ra. Không phù hợp với mục đích của mình. Giờ mình chưa nghĩ ra, mọi người giúp mình với. phamvandung (Pham Van Dung) March 10, 2020, 12:30am #2 Vậy thì replace trong substring thôi str = "lalala"; pos1 = str.find("l"); pos2 = str[pos1+1:].find("l"); print(str[:pos1+1]+str[pos2:].replace("l", "L", 1)) # laLala Hoặc là split ra xong ghép lại … str = "nhanha"; strs = str.split("nh", -1); print(strs) # ['', 'a', 'a'] 4 Likes Nobita1 (.) March 10, 2020, 8:56am #3 có cách nào khác hơn không nhỉ, vì bảng map của mình có nhiều ký tự. mà dùng cách thủ công là tìm xem trong từ đấy những kí tự mong muốn có trong từ xong replace thì code rối lắm rogp10 (rogp10) March 10, 2020, 9:38am #4 Mà yêu cầu này hơi lạ vì output sẽ tăng theo hàm mũ 3 Likes elc63287 (elc63287) March 10, 2020, 9:47am #5 Không hiểu yêu cầu của bạn lắm. Bạn thử dùng regex hoặc sinh hoán vị xem 3 Likes TaoLaoBidaoBanBanhBa March 10, 2020, 10:08am #6 Cách tiện nhất thì chắc là dùng regex để tìm những từ chứ ký tự mà bạn cần repalce. Nếu bạn không quen dùng regex, thì python có hàm startswith() và endswith() để tìm những từ cần thay thế, thay cho việc dùng regex. Cứ cho hết vào loops và xử lý từng thằng một thôi. Nhưng sẽ hơi chậm và nhìn không pro lắm. 4 Likes Nobita1 (.) March 10, 2020, 10:49am #7 Mình dùng cái re.match có thể lấy được position của nó (mình vừa nghĩ ra). Còn tại sao hàm mũ thì ý tưởng của bạn là gì 1 Like Nobita1 (.) March 10, 2020, 10:51am #8 hai hàm trên chỉ tìm được kí tự nằm đầu và năm cuối. Hai hàm kia hạn chế quá, mình cũng đang tìm hiểu regex Nobita1 (.) March 10, 2020, 10:52am #9 Kiểu 1 string có thể chưa nhiều kí tự yêu cầu và mình muốn thay thế nó bằng một kí tự khác, với số lương ký tự thay thế không cố định phamvandung (Pham Van Dung) March 10, 2020, 11:10am #10 Bạn có thể làm rõ đề bài không? có phải như thế này? # Tất cả ký tự thay thế cho 'a' replace_for_char_a = [b, c, d, e, f] # Từ cần thay thế word = "aaaa" # Output: # "aaab" # "aaac" # "aabc" # ...v.v. 3 Likes Nobita1 (.) March 10, 2020, 11:15am #11 chính xác rồi bạn. … phamvandung (Pham Van Dung) March 10, 2020, 11:22am #12 Thêm nữa, 1 string sẽ chỉ thay thế 1 ký tự (hoặc 1 substring) 1 lần, hay sẽ thay thế nhiều ký tự khác nhau 1 lần, vd: “ab” có “a” => “c” và “b” => “d” nên “ab” => “cd” 2 Likes noname00 (HK boy) March 10, 2020, 11:57am #13 Ý bạn ấy là output sinh ra quá nhiều. Như đề bài của bạn: Nobita1: Kiểu 1 string có thể chưa nhiều kí tự yêu cầu và mình muốn thay thế nó bằng một kí tự khác, với số lương ký tự thay thế không cố định Ví dụ: s = "a" * n replacer = ["b", "c", ..., "z"] # thay mỗi kí tự a bằng 1 số kí tự trong replacer Output là "a...a[b-z]" "a...[b-z]a" ... "[b-z]a..a" Đây mới chỉ là thay 1 lần mà đã có 25n xâu. Tiếp tục thay 2 kí tự: "a...[b-z][b-z]" "a...[b-z]a[b-z]" ... Đây có xâu output. Tiếp tục làm vậy nhiều lần, số output có là (đây chính là hàm mũ). Nếu n = 10 thì đã ra đến ~1e14 kết quả rồi Tổng quát, coi |replacer| là độ dài của mảng replacer, n là độ dài string cần replace: 6 Likes Nobita1 (.) March 10, 2020, 11:52am #14 có thể nhiều lần, cái ví dụ nhanh trên kia minh trình bày rồi mà nhanh - 1 lần - hnanh - 1 lần - nhahn - nhiều lần - hnahn Nobita1 (.) March 10, 2020, 12:15pm #15 do ràng buộc về đầu vào và số kí tự chọn để thay và nó được thay thế bằng một số kí tự khác cũng hạn chế nên không sợ nhiều. Mình rất thích những chứng minh rõ ràng và cụ thể như vậy, cám ơn bạn. phamvandung (Pham Van Dung) March 11, 2020, 5:16pm #16 Mình hỏi cho rõ đề bài thôi, vì đề bài rắc rối sẵn rồi, hỏi xem nó có rắc rối hơn không # Lười viết hàm helper, lười tối ưu, lười mọi thứ nên print ra thôi :V ^^ def replace(pre_str, post_str, target, directory): tar_len = len(target); pos = post_str.find(target); if pos == -1: print(pre_str + post_str); else: for rep in directory: replace(pre_str+post_str[:pos] + rep, post_str[pos+tar_len:], target, directory); replace(pre_str+post_str[:pos] + target, post_str[pos+tar_len:], target, directory) # Xử lý trường hợp mẫu phía dưới for i in range(1, tar_len): if post_str[pos+i:pos+i+tar_len] == target: pos+=i; for rep in directory: replace(pre_str+post_str[:pos] + rep, post_str[pos+tar_len:], target, directory); replace("", "aaaa", "aa", ["bb"]) 7 Likes Nobita1 (.) March 11, 2020, 5:17pm #17 Cám ơn bạn vì api này, thật sự mình tưởng thư viện có, cơ mà phải bạn code thế này thì tốt quá, mình chưa check được xem có ngoại lệ nào không 1 Like DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Hàm Thay Thế Trong Python Hàm Replace() Trong Python - Học Lập Trình Python - VietTuts Thay Thế Ký Tự Trong Chuỗi Python Phương Thức String Replace() Trong Python Kiểu Dữ Liệu Chuỗi Trong Python - Phần 4 Thay Thế Nhiều Ký Tự Bằng Python? - HelpEx Hàm Thay Thế Trong Python [thay Thế Một Lần] - HelpEx Chi Tiết Bài Học 6.Chuỗi Trong Python - Vimentor Python — Làm Thế Nào để Thay Thế Nhiều Chuỗi Con Của Một Chuỗi? Thay Thế Các Ký Tự đặc Biệt Trong Chuỗi Python Các Hàm Xử Lý Chuỗi Trong Python Một Số Hàm Xử Lý Chuỗi Trong Python - Lập Trình Từ Đầu Một Số Thao Tác Với Chuỗi Ký Tự Trên Python - TEK4 Làm Cách Nào để Thay Thế Chuỗi Trong R? Giới Thiệu Về Các Hàm Chuỗi Trong Python 3