我有一个字符串,例如
x = "aaaaaaaaaa"
我想替换例如20%的“a”与“b”。我试过了:
x_new = ''.join(i if random.randint(0, 1) else 'b' for i in x)
但是random.randint(0,1)
我不知道如何获得20%的替换。
答案 0 :(得分:4)
以下代码会将原始a
字符的概率保持在80%,否则会将其替换为b
from random import random
x = "aaaaaaaaaa"
rand_replace = lambda c: c if random()<0.8 and c=='a' else 'b'
x_new = ''.join([rand_replace(c) for c in x])
如果你想要替换的总概率是20%的字符串:
rand_replace = lambda c: c if random()<0.8**(1.0/len(x)) and c=='a' else 'b'
答案 1 :(得分:0)
x = "aaaaaaaaaa"
x_new = x.replace('a', 'b', int(len(x) * 0.2) )
print x_new