❮ Phương thức chuỗi
Ví dụ
Thay thế từ "chuối"
txt = "Tôi thích chuối"
x = txt. replace("chuối", "táo")
in(x)
Tự mình thử »Định nghĩa và cách sử dụng
Phương thức replace() thay thế một cụm từ được chỉ định bằng một cụm từ được chỉ định khác
Ghi chú. Tất cả các lần xuất hiện của cụm từ được chỉ định sẽ được thay thế, nếu không có gì khác được chỉ định
cú pháp
sợi dây. thay thế (giá trị cũ, giá trị mới, số lượng)
Giá trị tham số
Tham sốMô tảoldvalueBắt buộc. Chuỗi để tìm kiếm giá trị mớiBắt buộc. Chuỗi để thay thế giá trị cũ bằngcountOptional. Một số chỉ định số lần xuất hiện của giá trị cũ mà bạn muốn thay thế. Mặc định là tất cả các lần xuất hiệnThêm ví dụ
Ví dụ
Thay thế tất cả các lần xuất hiện của từ "một"
txt = "một con là ngựa đua, hai hai cũng là một. "
x = txt. thay thế ("một", "ba")
in(x)
Tự mình thử »Ví dụ
Thay thế hai lần xuất hiện đầu tiên của từ "một"
txt = "một con là ngựa đua, hai hai cũng là một. "
x = txt. thay thế ("một", "ba", 2)
in(x)
Tự mình thử »❮ Phương thức chuỗi
Tôi là Kỹ sư mạng đang học Python và đây hoàn toàn là ghi chú của tôi. Tôi không phải là một chuyên gia bằng mọi cách. Vui lòng sử dụng bất kỳ ví dụ nào trong số này và cải thiện chúng. Vui lòng gọi tôi ra nơi mọi thứ có thể được thực hiện tốt hơn
trở điMột nhiệm vụ phổ biến mà tôi cần làm là thay thế các từ trong một tệp bằng một thứ khác. Ví dụ
hostname $hostname interface Gig0/1 ip address $ip 255.255.255.252Ở đâu $hostname và $ip phải là các biến . Bài đăng này xem xét cách thực hiện điều này trên trình thông dịch Python và thông qua tệp tập lệnh bằng hàm Python.
Để giữ cho mọi thứ tương đối đơn giản, tôi sẽ chỉ thực hiện thay thế trên một tệp duy nhất, sử dụng một bộ thuộc tính duy nhất
Thông dịch viênNhảy vào Python
$ python Python 2.7.9 (default, Dec 15 2014, 10:01:34) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>Đầu tiên, tôi sẽ mở một tệp văn bản có tên ' t ' và đọc nó thành một chuỗi có tên ' tempstr‘
>>> t = open('example_template.txt', 'r') >>> tempstr = t.read() >>> t.close()Chúng ta hãy nhìn vào chuỗi này
>>> print tempstr Your hostname is: $hostname Your IP address is: $ip Did this work? $answerMục tiêu là thay thế các từ bắt đầu bằng ký hiệu đô la ($) bằng một từ khác. Lưu ý rằng tôi đang sử dụng ký hiệu đô la vì nó giúp dễ dàng thực hiện tìm thay thế. Điều này không bắt buộc
Tiếp theo, tôi sẽ tạo một từ điển các cặp khóa/giá trị sẽ được sử dụng khi thay thế các biến. Chúng tôi sẽ gọi từ điển này là “ giá_trị_thiết_bị “
>>> device_values = { .. '$hostname': 'overlaid-router', .. '$ip': '169.254.66.6', .. '$answer': 'yes', .. }Bạn có thể thấy các phím được chỉ định bằng ký hiệu đô la ($) ở phía trước chúng. Hãy nhớ rằng, điều này không liên quan gì đến Python, đây chỉ đơn giản là cách tôi chọn đặt tên cho các khóa này để chúng thẳng hàng với các từ tôi sẽ thay thế trong tệp mẫu của mình
Bây giờ, chúng tôi cần tìm kiếm chuỗi ' tempstr ' để tìm khóa trong device_valuesdevice_values ' . Để thực hiện điều này, chúng tôi sẽ lặp lại từ điển của mình và sử dụng. phương pháp thay thế. device_values ' . Để thực hiện điều này, chúng tôi sẽ lặp lại từ điển của mình và sử dụng. phương pháp thay thế. and replace them with the corresponding values. To accomplish this, we’ll iterate through our dictionary and use the .replace method.
Chuỗi hiện tại của chúng tôi
>>> print tempstr Your hostname is: $hostname Your IP address is: $ip Did this work? $answerXem xét từng cặp khóa/giá trị trong từ điển và cập nhật chuỗi tempstr bằng khóa/giá trị phù hợp
>>> for key,val in device_values.items(): .. tempstr = tempstr.replace(key,val) ..Chuỗi mới của chúng tôi
>>> print tempstr Your hostname is: overlaid-router Your IP address is: 169.254.66.6 Did this work? yesHoàn hảo
Là gì. mặt hàng?
Trong trường hợp bạn tò mò,. phương thức items ở trên trả về danh sách các cặp khóa/giá trị của từ điển. Trên thực tế, chúng là các bộ dữ liệu, không phải từ điển, nhưng trong trường hợp này phục vụ cùng một mục đích. Bộ dữ liệu không thể thay đổi, không giống như từ điển, nhưng chúng tôi không thực hiện bất kỳ thay đổi nào ở đây, chỉ cần đọc.
Điều này là bắt buộc khi lặp qua từ điển. Bạn có thể thấy sự khác biệt ở đây giữa bản in đơn giản của từ điển và bản in các mục từ điển. Lưu ý {} cho từ điển và [()] cho danh sách [] bộ dữ liệu ()
>>> device_values {'$ip': '169.254.66.6', '$answer': 'yes', '$hostname': 'overlaid-router'} >>> device_values.items() [('$ip', '169.254.66.6'), ('$answer', 'yes'), ('$hostname', 'overlaid-router')] Hàm Python để thay thế từHàm này sẽ nhận hai biến. base_text chuỗi và device_values từ điển. Nó sẽ lặp lại từ điển giống như ví dụ trên và thay thế các từ (khóa) được tìm thấy trong base_text bằng các từ (giá trị) tương ứng trong từ điển.
def replace_words(base_text, device_values): for key, val in device_values.items(): base_text = base_text.replace(key, val) return base_textTừ điển và chuỗi được bắt nguồn thông qua cùng một phương tiện như ví dụ đầu tiên
$ python Python 2.7.9 (default, Dec 15 2014, 10:01:34) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 0Sự khác biệt duy nhất là cách chúng tôi gửi chúng đến chức năng của chúng tôi để xử lý. tempstr sẽ xuất hiện dưới dạng base_text đối số và thiết bị sẽ xuất hiện dưới dạng device_values argument.
$ python Python 2.7.9 (default, Dec 15 2014, 10:01:34) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 1 Dưới dạng tập lệnh PythonCác. tập lệnh py bên dưới sẽ hỏi bạn ba biến. Nó sẽ mở một tệp mẫu và thực hiện tìm và thay thế, lưu một tệp mới có tên là đầu ra. txt vào thư mục của bạn