Làm thế nào để bạn thay thế các chữ cái bằng số trong python?

Trong hướng dẫn ngắn này, chúng tôi xem xét cách bạn có thể sử dụng Python để thay thế một ký tự trong chuỗi. Chúng tôi chia nhỏ mã để giúp bạn hiểu chức năng

Mục lục. Python thay thế ký tự trong chuỗi

  • Python thay thế()
  • Mã và giải thích
  • Suy nghĩ kết thúc - Python thay thế ký tự trong chuỗi

Không giống như danh sách, chuỗi Python là bất biến và do đó chúng không thể thay đổi sau khi được khởi tạo. Do đó, các phương thức được sử dụng để chỉnh sửa danh sách không thể được sử dụng trên một chuỗi. Tuy nhiên, Python có một số hàm có thể thay thế ký tự trong chuỗi

Python thay thế()

Phương thức replace() trong Python được sử dụng để tìm và thay thế các ký tự trong một chuỗi. Nó yêu cầu một chuỗi con được truyền dưới dạng đối số; . Phương thức replace() thường được sử dụng trong việc làm sạch dữ liệu

Tuy nhiên, các chuỗi đã cho là bất biến, hàm sẽ thay thế các ký tự trên bản sao của chuỗi gốc. Vì vậy, đảm bảo bạn lưu chuỗi mới trong trường hợp bạn có ý định sử dụng thêm

Cú pháp thay thế()

string.replace(old, new, count)
Ở đây “chuỗi” đề cập đến chuỗi bạn đang muốn thay thế các ký tự bằng

Tham số (Python thay thế ký tự trong chuỗi)

  • Cũ - Bắt buộc, chuỗi con bạn muốn thay thế
  • Mới - Bắt buộc, chuỗi con bạn đang tìm để thay thế chuỗi cũ bằng
  • Đếm - Tùy chọn, chỉ định số lần bạn muốn chuỗi được thay thế. Nếu để trống, tất cả các lần xuất hiện sẽ được thay thế

Mã và giải thích

# use of replace() method 
 
string = "Join our community of top freelancers"
  
# replace "top" with "top 1%"
print(string.replace("top", "top 1%"))
 
# printing the original string
print(string)
Đoạn mã trên cho kết quả như sau.
Join our community of top 1% freelancers
Join our community of top freelancers

Như bạn có thể thấy chuỗi con đã được thay thế nhưng chuỗi ban đầu vẫn giữ nguyên. Ngoài ra, do chúng tôi không chỉ định đối số đếm, tất cả các lần xuất hiện đã được thay thế

Chúng ta hãy xem trường hợp chúng ta thay thế nhiều phiên bản của một chuỗi

string = "python is a programming language"

# replace "p" with "P" once
print(string.replace("p", "P",1))
 
# replace "p" with "P" once
print(string.replace("p", "P"))

Trong đoạn mã trên, trước tiên chúng ta chỉ thay thế “p” một lần trong khi ở câu lệnh in thứ hai, chúng ta chưa chuyển đối số phản đối. Điều này có nghĩa là tất cả các lần xuất hiện sẽ được thay thế

Ghi chú. Nếu số lượng không được chỉ định, phương thức replace() sẽ thay thế tất cả các lần xuất hiện của chuỗi con cũ bằng chuỗi mới


thay thế () Giá trị trả về

Phương thức replace() trả về một bản sao của chuỗi trong đó chuỗi con cũ được thay thế bằng chuỗi mới. Chuỗi ban đầu không thay đổi

Giả sử chúng ta có một chuỗi chữ và số s chứa các chữ cái tiếng Anh viết thường ở vị trí chẵn và các chữ số ở vị trí lẻ của nó. Xét phép toán shift(c, x), trong đó c là ký tự bất kỳ và x là số (chữ số), thao tác này sẽ tìm ký tự thứ x sau c. Vì vậy, ví dụ, shift('p', 5) = 'u' và shift('a', 0) = 'a'. Bây giờ đối với mọi chỉ số lẻ i, chúng tôi muốn thay thế chữ số s[i] bằng shift(s[i-1], s[i]). Chúng ta phải tìm s sau khi thay thế tất cả các chữ số

Vì vậy, nếu đầu vào giống như s = "a2b1d4f3h2", thì đầu ra sẽ là "acbcdhfihj" bởi vì

  • thay đổi ('a', 2) = 'c'

  • thay đổi ('b', 1) = 'c'

  • thay đổi ('d', 4) = 'h'

  • thay đổi ('f', 3) = 'tôi'

  • thay đổi ('h', 2) = 'j'

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • độ phân giải. = chuỗi trống

  • đối với tôi trong phạm vi từ 0 đến kích thước của s, hãy làm

    • nếu s[i] là một chữ số, thì

      • độ phân giải. = res nối ký tự từ (ASCII s[i] + ASCII của s[i-1])

    • nếu không thì,

      • độ phân giải. = res nối s[i]

  • trả lại độ phân giải

Chúng ta hãy xem triển khai sau đây để hiểu rõ hơn -

Thí dụ

Bản thử trực tiếp

def solve(s):
   res=""
   for i in range(len(s)):
      if s[i].isdigit():
         res+= chr(int(s[i])+ord(s[i-1]))
      else:
         res+=s[i]
   return res
s = "a2b1d4f3h2"
print(solve(s))

Đầu vào

"a2b1d4f3h2"

đầu ra

acbcdhfihj

Làm thế nào để bạn thay thế các chữ cái bằng số trong python?


Làm thế nào để bạn thay thế các chữ cái bằng số trong python?

Thuật ngữ ASCII, từ viết tắt của American Standard Code for Information Interchange, về cơ bản là một tiêu chuẩn có khả năng gán các chữ cái, số và một số ký tự khác trong mã 8 bit chứa tối đa 256 vị trí có sẵn

Mỗi ký tự, bất kể đó là chữ số (0-9) hay chữ cái (a-z) or (A-Z) đều có giá trị ASCII được gán cho nó, giá trị này có thể được sử dụng đơn giản để tìm ra số hoặc giá trị mà bất kỳ chữ cái nào trong bảng chữ cái nắm giữ

Để giải thích hướng dẫn này, chúng tôi sẽ lấy một chuỗi các chữ cái trong bảng chữ cái và chuyển đổi nó thành một danh sách các số

Sử dụng hàm ord() để chuyển đổi chữ cái thành số trong Python

Hàm ord() trong Python được sử dụng để trả về Unicode hoặc trong trường hợp này là giá trị ASCII của một chữ cái đã cho trong bảng chữ cái. Chúng ta sẽ áp dụng hàm ord() cho các chữ cái và trừ đi

l = "web"
n = [ord(x) - 96 for x in l]
print(n)
2 để có được giá trị chính xác của ASCII

Đoạn mã sau sử dụng hàm ord() để chuyển đổi các chữ cái thành số trong Python

________số 8_______

Đoạn mã trên cung cấp đầu ra sau

Sử dụng l = "web" n = [ord(x) - 96 for x in l] print(n) 5 để chuyển đổi chữ cái thành số trong Python

l = "web"
n = [ord(x) - 96 for x in l]
print(n)
6 là một cách tương đối ngắn hơn và tinh tế hơn để tạo các danh sách được hình thành dựa trên các giá trị đã cho của một danh sách đã tồn tại