随机更改python列表中的字符



由python代码生成的序列如下:

TTTTTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

我想遍历它们,并将具有一定%的每个字符更改为N,例如0.2%,否则将其保留为原始字符。我该怎么做呢?

可以使用随机整型,如下所示:

import random
for i in range(len(your_list)):
if random.randint(0,1000)<2: #0.2%chance
your_list[i] = 'N'

在生成器表达式中使用random.random(),并将join返回到字符串

import random                                                           
s = "TTTTTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
p = 0.002
s2 = "".join("N" if random.random() <= p else c for c in s)                  

最新更新