我正在使用 replace()
来扭曲数据,并且我希望有一个“高扭曲”设置,其中每个实例都被替换,以及一个“低扭曲”设置,其中有一个每个实例有 50% 的机会被替换。例如:
x = "aaaaaaaaaa"
x = x.replace("a", "b")
'bbbbbbbbbb'
x = "aaaaaaaaaa"
x = x.5050replace("a", "b")
'aabbabbaab'
如果不重写replace()
,有人怎么能做到这一点?
最佳答案
使用random模块:
import random
x = ''.join(i if random.randint(0, 1) else 'b' for i in x)
如果 random.randint
的计算结果为 0
,则此代码实质上会“替换”x
中的每个字母 'b'
,并保持原样。
如果您的字符串很复杂,例如 'aacakedaaasa'
并且您只想替换 'a'
,请尝试以下操作:
x = ''.join(i if i != 'a' or random.randint(0, 1) else 'b' for i in x)
如果字母不是'a'
,则不会执行任何操作;如果是随机,则将其替换为
返回 'b'
.randint0
,如前面的示例。
关于python - (随机)替换字符串中 50% 的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14411373/