python - (随机)替换字符串中 50% 的字符

标签 python random replace

我正在使用 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' .randint 返回 0,如前面的示例。

关于python - (随机)替换字符串中 50% 的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14411373/

相关文章:

python - pydantic - json 键不是有效的 python 字段名称

ruby-on-rails - 在Rails中,如何使随机事件在随机用户的随机时间发生

mysql - 如何根据返回相同数据的多个列进行 UPDATE 或 INSERT,而无需访问唯一 ID

python - 矩阵的 numpy 平方和

Python写入csv,一旦检查字符串是否在csv中

c++ - 我可以像在 C++ 中那样在 R 中拥有多个独立的随机数生成器吗?

python - 用 `and` 条件替换 pandas 列中的部分字符串

gradle - 如何使用Gradle build替换xml的内容或关键字(如applicationContext.xml)?

python - 如何在 linux 后台使用 python 捕获鼠标事件和按键事件

java - 从列表中删除重复字符串时发生致命异常