Hướng dẫn replace alphabet in string python - thay thế bảng chữ cái trong chuỗi python

Tôi cần trả lại câu đố đã cho với mỗi ký tự chữ cái được thay thế bằng ký tự ẩn.

HIDDEN = '^' 

def blah(r):
    r = HIDDEN * len(r)
    return r

Hàm này hoạt động để thay thế bất kỳ chuỗi nào tôi cần, nhưng câu hỏi cụ thể đặt ra rằng mỗi ký tự chữ cái được thay thế.

Vì vậy, tôi không thể có

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
1 hoặc
import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
2 hoặc
import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
3 được thay thế bằng ẩn vì chúng không phải là ký tự chữ cái.

Làm thế nào tôi nên đi về điều này?

Hướng dẫn replace alphabet in string python - thay thế bảng chữ cái trong chuỗi python

Adam Lear ♦

37.3K12 Huy hiệu vàng82 Huy hiệu bạc100 Huy hiệu đồng12 gold badges82 silver badges100 bronze badges

Hỏi ngày 19 tháng 10 năm 2012 lúc 2:23Oct 19, 2012 at 2:23

7

Một cách tiếp cận: Sử dụng phương thức dịch:

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)

Một cách tiếp cận khác: Sử dụng

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
4:

import re

def blah(r):
    return re.sub(r'[a-zA-Z]', r'^', r)

Đã trả lời ngày 19 tháng 10 năm 2012 lúc 2:29Oct 19, 2012 at 2:29

Nneonneonneonneonneonneo

166K35 Huy hiệu vàng298 Huy hiệu bạc369 Huy hiệu đồng35 gold badges298 silver badges369 bronze badges

4

Kiểm tra Maketrans, bạn có thể tạo một bảng dịch từ

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
5 đến
import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
6 và sau đó sử dụng nó.

Đã trả lời ngày 19 tháng 10 năm 2012 lúc 2:29Oct 19, 2012 at 2:29

NneonneonneonneoMiki Tebeka

166K35 Huy hiệu vàng298 Huy hiệu bạc369 Huy hiệu đồng3 gold badges37 silver badges48 bronze badges

Kiểm tra Maketrans, bạn có thể tạo một bảng dịch từ

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
5 đến
import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
6 và sau đó sử dụng nó.

Miki Tebekamiki Tebeka

Huy hiệu vàng 13K337 Huy hiệu bạc48 Huy hiệu đồngOct 19, 2012 at 2:49

Hướng dẫn replace alphabet in string python - thay thế bảng chữ cái trong chuỗi python

Tôi đã luôn thấy

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
7 có một chút khó hiểu, vì vậy tôi thường quay trở lại với những cách nguyên thủy hơn để làm những việc này (điều này có ý nghĩa hơn với tôi):mgilson

def make_hidden(instr):
    return ''.join(c if c.isalpha() else '^' for c in instr)
63 gold badges610 silver badges677 bronze badges

2

Đã trả lời ngày 19 tháng 10 năm 2012 lúc 2:49

HIDDEN = '^' 

def blah(r):

    new_r = ""

    for ch in r:

        if ch in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ':

           new_r += HIDDEN 

        else:

           new_r += ch

     return new_r

Mgilsonmgilson

291K63 Huy hiệu vàng610 Huy hiệu bạc677 Huy hiệu Đồng35 gold badges143 silver badges254 bronze badges

Trả lại câu đố đã cho với mỗi ký tự chữ cái được thay thế bằng ký tự ẩn.Dec 9, 2012 at 1:32

Brian MainsEric Jung

50.4K35 Huy hiệu vàng143 Huy hiệu bạc254 Huy hiệu đồng1 gold badge3 silver badges12 bronze badges

Đã trả lời ngày 9 tháng 12 năm 2012 lúc 1:32

Phương thức

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
8 thay thế cho mỗi lần xuất hiện của ký tự/văn bản cũ trong chuỗi với ký tự/văn bản mới.

Thí dụ

text = 'bat ball'

# replace b with c replaced_text = text.replace('b', 'c')

print(replaced_text) # Output: cat call


thay thế () cú pháp

Đó là cú pháp là:

str.replace(old, new [, count]) 

thay thế () tham số

Phương thức

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
8 có thể mất tối đa 3 tham số:

  • Cựu Ước - Cựu Ước bạn muốn thay thế - old substring you want to replace
  • Mới - Chất nền mới sẽ thay thế bộ nền cũ - new substring which will replace the old substring
  • Đếm (Tùy chọn) - Số lần bạn muốn thay thế bộ nền cũ bằng cách (optional) - the number of times you want to replace the old substring with the new substring

Lưu ý: Nếu số lượng không được chỉ định, phương thức

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
8 thay thế tất cả các lần xuất hiện của chuỗi con cũ bằng chuỗi con mới.: If count is not specified, the
import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
8 method replaces all occurrences of the old substring with the new substring.


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

Phương thức

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
8 trả về một bản sao của chuỗi trong đó chuỗi con cũ được thay thế bằng chuỗi con mới.Chuỗi ban đầu không thay đổi.

Nếu không tìm thấy chuỗi con cũ, nó sẽ trả về bản sao của chuỗi gốc.


Ví dụ 1: Sử dụng thay thế ()

song = 'cold, cold heart'

# replacing 'cold' with 'hurt' print(song.replace('cold', 'hurt'))

song = 'Let it be, let it be, let it be, let it be'

# replacing only two occurences of 'let' print(song.replace('let', "don't let", 2))

Đầu ra

hurt, hurt heart
Let it be, don't let it be, don't let it be, let it be

Thêm ví dụ về Chuỗi thay thế ()

song = 'cold, cold heart'

replaced_song = song.replace('o', 'e')

# The original string is unchanged print('Original string:', song) print('Replaced string:', replaced_song) song = 'let it be, let it be, let it be' # maximum of 0 substring is replaced # returns copy of the original string

print(song.replace('let', 'so', 0))

Đầu ra

import string

table = string.maketrans(string.ascii_letters, '^'*len(string.ascii_letters))

def blah(r):
    return r.translate(table)
0