我需要使用
Python更改字符串中的3个随机字符,示例字符串:
Adriano Celentano
Luca Valentina
我需要替换3个字符,而不是替换相同的字符或数字,而不是替换空格.我怎么能用Python做到这一点?
需要像这样的输出:
adraano cettntano
lacr vilenntina
我不知道从哪里可以开始做到这一点.
我的代码到目前为止:
for i in xrange(4):
for n in nume :
print n.replace('$', random.choice(string.letters)).replace('#', random.choice(string.letters))
最佳答案 如果您只想更改不是空格的字符而不是索引相同的字符,则可以先拉出非空格字符所在的索引:
import random
inds = [i for i,_ in enumerate(s) if not s.isspace()]
print(random.sample(inds,3))
然后使用这些索引替换.
s = "Adriano Celentano"
import random
inds = [i for i,_ in enumerate(s) if not s.isspace()]
sam = random.sample(inds, 3)
from string import ascii_letters
lst = list(s)
for ind in sam:
lst[ind] = random.choice(ascii_letters)
print("".join(lst))
如果你想要每次更换一个独特的char也:
s = "Adriano Celentano"
import random
from string import ascii_letters
inds = [i for i,_ in enumerate(s) if not s.isspace()]
sam = random.sample(inds, 3)
letts = iter(random.sample(ascii_letters, 3))
lst = list(s)
for ind in sam:
lst[ind] = next(letts)
print("".join(lst))
输出:
Adoiano lelenhano