Hướng dẫn how do you replace a digit in a character in python? - làm thế nào để bạn thay thế một chữ số trong một ký tự trong python?

Giả sử chúng ta có một chuỗi chữ và số có chứa các chữ cái tiếng Anh thường ở các vị trí và chữ số chẵn của nó ở các vị trí lẻ của nó. Hãy xem xét một ca hoạt động [C, x], trong đó c là bất kỳ ký tự nào và x là số [chữ số], điều này sẽ tìm thấy ký tự 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ỉ mục 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" vì

  • Shift ['A', 2] = 'C'

  • Shift ['B', 1] = 'C'

  • Shift ['D', 4] = 'H'

  • Shift ['f', 3] = 'i'

  • Shift ['H', 2] = 'J'

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

  • Res: = Chuỗi trống

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

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

      • res: = res concatenate ký tự từ [ascii s [i] + ascii của s [i-1]]

    • otherwise,

      • res: = res concatenate s [i]

  • Trả lại res

Hãy cho chúng tôi xem việc thực hiện sau đây để hiểu rõ hơn -

Thí dụ

& nbsp; bản demo 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

Cập nhật vào ngày 29-tháng 5 năm 2021 14:11:15

  • Câu hỏi và câu trả lời liên quan
  • Chương trình thay thế tất cả các biểu tượng câu hỏi để tránh các ký tự lặp lại liên tiếp trong Python
  • Chương trình Python để thay thế tất cả các ký tự của một danh sách ngoại trừ ký tự đã cho
  • Chương trình Python - Chuỗi có tất cả các ký tự danh sách đã cho
  • Làm thế nào để thay thế các chữ số thành chuỗi bằng Java?
  • Tìm tất cả các chuỗi được hình thành từ các ký tự được ánh xạ tới các chữ số của một số trong Python
  • Chương trình Python chấp nhận ba chữ số và in tất cả các kết hợp có thể từ các chữ số
  • Chương trình đếm các tiểu thể với tất cả các nhóm sử dụng Python
  • Chương trình Python để thay thế tất cả các lần xuất hiện của ‘A, bằng $ trong một chuỗi
  • Chương trình thay thế tất cả các ký tự trong tệp bằng '#' ngoại trừ một từ cụ thể trong java
  • Python - Chuỗi có tất cả các ký tự danh sách đã cho
  • C chương trình để viết tất cả các chữ số thành các từ sử dụng cho vòng lặp
  • Chương trình Python để tìm tất cả các ký tự trùng lặp trong một chuỗi
  • Làm thế nào để thay thế tất cả các ký tự đặc biệt theo một nhân vật khác - JavaScript?
  • Chương trình Java để thay thế 10 ký tự đầu tiên trong JTextarea
  • Chương trình Java để thay thế tất cả các lần xuất hiện của chuỗi đã cho bằng một chương trình mới

Tôi cần tìm kiếm một chuỗi và kiểm tra xem nó có chứa các số trong tên của nó không. Nếu có, tôi muốn thay thế nó mà không có gì. Tôi đã bắt đầu làm một cái gì đó như thế này nhưng tôi đã không tìm thấy một giải pháp cho vấn đề của mình.

table = "table1"

if any[chr.isdigit[] for chr in table] == True:
    table = table.replace[chr, "_"]
    print[table]

# The output should be "table"

Bất kỳ ý tưởng?

Martineau

Huy hiệu vàng 116K2525 gold badges161 silver badges288 bronze badges

Khi được hỏi ngày 12 tháng 5 lúc 8:35May 12 at 8:35

1

Bạn có thể làm điều này theo nhiều cách khác nhau. Đây là cách nó có thể được thực hiện với mô -đun RE:

import re

table = 'table1'

table = re.sub['\d+', '', table]

Đã trả lời ngày 12 tháng 5 lúc 8:43May 12 at 8:43

CobracobraCobra

12.9k2 Huy hiệu vàng5 Huy hiệu bạc18 Huy hiệu đồng2 gold badges5 silver badges18 bronze badges

Nếu bạn không muốn nhập bất kỳ mô -đun nào, bạn có thể thử:

table = "".join[[i for i in table if not i.isdigit[]]]

Hơn

2.1652 huy hiệu vàng2 Huy hiệu bạc21 Huy hiệu đồng2 gold badges2 silver badges21 bronze badges

Đã trả lời ngày 12 tháng 5 lúc 8:49May 12 at 8:49

Bendik Knapstadbendik KnapstadBendik Knapstad

1.3161 Huy hiệu vàng9 Huy hiệu bạc17 Huy hiệu đồng1 gold badge9 silver badges17 bronze badges

Âm thanh này giống như nhiệm vụ cho phương thức

"a2b1d4f3h2"
0 của
"a2b1d4f3h2"
1, bạn có thể làm

table = "table1"
table = table.translate["".maketrans["","","0123456789"]]
print[table] # table

2 Đối số đầu tiên của

"a2b1d4f3h2"
2 dành cho ký tự thay thế cho ký tự, vì chúng tôi không cần điều này, chúng tôi sử dụng các
"a2b1d4f3h2"
1, đối số thứ ba [tùy chọn] là các ký tự để xóa.

Đã trả lời ngày 12 tháng 5 lúc 8:44May 12 at 8:44

DaweodaweoDaweo

26.9K3 Huy hiệu vàng10 Huy hiệu bạc23 Huy hiệu đồng3 gold badges10 silver badges23 bronze badges

char_nums = [chr for chr in table if chr.isdigit[]]

for i in char_nums:
    table = table.replace[i, ""]
print[table]

Đã trả lời ngày 12 tháng 5 lúc 8:54May 12 at 8:54

table = "table123"

for i in table:
    if i.isdigit[]:
        table = table.replace[i, ""]
print[table]

nhiệm vụ

3,2231 Huy hiệu vàng14 Huy hiệu bạc24 Huy hiệu đồng1 gold badge14 silver badges24 bronze badges

Đã trả lời ngày 12 tháng 5 lúc 8:43May 12 at 8:43

Cobracobra

table = "table1"
table_temp =""
for i in table:
   if i not in "0123456789":
      table_temp +=i
print[table_temp]

Đã trả lời ngày 12 tháng 5 lúc 8:44May 12 at 8:44

Bài Viết Liên Quan

Chủ Đề