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?
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 TebekaHuy hiệu vàng 13K337 Huy hiệu bạc48 Huy hiệu đồngOct 19, 2012 at 2:49
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
63 gold badges610 silver badges677 bronze badgesdef make_hidden[instr]:
return ''.join[c if c.isalpha[] else '^' for c in instr]
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
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]
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