对一个字符串进行10次随机更改

2024-06-01 01:07:49 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个长度为100的DNA字符串。我需要将该字符串中的20个字符随机更改为其他字符的列表。你知道吗

import random

bases = ("A", "C", "G", "T")

def random_dna(length):
    return ''.join(random.choice(bases) for _ in range(length))

randomDNA = random_dna(100)
new_list = ("1", "2", "3")

def change_random_string(randomDNA):
   x = random.randrange(0, len(randomDNA)-1)
val = random.choice(new_list)
return ''.join(randomDNA)

问题是我的第二种方法根本不起作用。 预期产量:

GTAAGCGCGTTGGGTTTGAAAGCCCACCGCAAAATGAAGCTCTAAGCAAACTGGGA
1T23GC1CGTTGGGTTTG1A2GCCCAC2GtAAAATGAAG11CTAAGCAAACTGGGA

Tags: 字符串newreturndefrandom字符lengthlist
1条回答
网友
1楼 · 发布于 2024-06-01 01:07:49

我不知道这是不是复制粘贴的错误,但是您的“return”不在change\u random\u string()函数中。你知道吗

我改变了台词的顺序:

import random

bases = ("A", "C", "G", "T")

def random_dna(length):
   return ''.join(random.choice(bases) for _ in range(length))

def change_random_string(randomDNA):
  x = random.randrange(0, len(randomDNA)-1)
  val = random.choice(new_list)
  return ''.join(randomDNA)  

 randomDNA = random_dna(100)

然后:

 print(randomDNA)

输出看起来像是您要求的: tttatagctcaagcaaaaacactcctccataacccttccttgacctaatcggcctagccatcgtcgtggagagacgtgtgtatagactcctgggcggt

当把碱基和新列表混合在一起时:

bases = ("A", "C", "G", "T","1","2","3")

同样的要求打印(随机DNA)返回:

AT1A3T2C1ATAC1A2GT3ACCTCG23GATC3C33AGA2ATAC3A3113A11A1GACG2CT3CGG1T3C13CA1231AA122AA2133ACA3A3A3A3A3A3A

你到底发现了什么问题?你知道吗

相关问题 更多 >