Python thay thế các từ trong chuỗi từ từ điển

❮ 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ện

Thê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ở đi

Mộ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 $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ên

Nhả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?        $answer

Mụ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?        $answer

Xem 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?        yes

Hoà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_text

Từ đ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.
>>> 
0

Sự 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 Python

Cá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

Làm cách nào để thay thế văn bản bằng từ điển trong gấu trúc?

Bạn có thể sử dụng df. replace({"Khóa học". dict}) để ánh xạ lại/thay thế các giá trị trong DataFrame của gấu trúc bằng các giá trị Từ điển. Nó cho phép bạn linh hoạt thay thế các giá trị cột bằng các biểu thức chính quy để thay thế biểu thức chính quy.

Làm cách nào để thay thế tất cả các lần xuất hiện của một ký tự trong chuỗi Python?

Phương thức replace() .

Chúng ta có thể chuyển đổi từ điển thành chuỗi trong Python không?

Bạn có thể dễ dàng chuyển đổi từ điển Python thành chuỗi bằng hàm str() . Hàm str() lấy một đối tượng (vì mọi thứ trong Python đều là đối tượng) làm tham số đầu vào và trả về một biến thể chuỗi của đối tượng đó. Lưu ý rằng nó không thực hiện bất kỳ thay đổi nào trong từ điển mà trả về một biến thể chuỗi.

Làm cách nào để thay thế một từ trong chuỗi mà không sử dụng phương thức thay thế trong Python?

1 câu trả lời .
s1 = input (“Nhập chuỗi cần thay thế. “)
s2 = input (“Nhập chuỗi để thay thế bằng “)
s1 = s2
in (“Chuỗi được thay thế là “ , s1)
Nhập chuỗi cần thay thế. Máy tính
Nhập chuỗi để thay thế bằng. máy tính lại
Chuỗi thay thế là repcomputer