2024-09-29 23:32:32 发布
网友
我想从一个较大的序列中随机寻找一个长度为4的子序列
我尝试了以下代码:
import system import random X = 'ATGCATGCTAGCTAGTAAACGTACGTACGTACGATGCTAATATAGAGGGGCTTCGTACCCCTGA' Y = [random.choice(X) for i in range(4)] print(Y)
但它从X中选择了4个不同的元素,而不是一个长度为4的连续序列
您可以随机选择一个起始索引,然后使用切片来提取该子字符串
def random_slice(s, n): index = random.randint(0, len(s)-n) return s[index : index + n] >>> random_slice(X, 4) 'GCTA' >>> random_slice(X, 4) 'CGTA' >>> random_slice(X, 4) 'TATA' >>> random_slice(X, 4) 'AGCT'
如果希望序列长度为4的连续性,请选择一个介于0和长度为X-4之间的索引,并从该索引中获取4个元素,而不是尝试使用random.choice从X中选择字符。示例-
X
random.choice
>>> X = 'ATGCATGCTAGCTAGTAAACGTACGTACGTACGATGCTAATATAGAGGGGCTTCGTACCCCTGA' >>> import random >>> i = random.randint(0,len(X)-4) >>> X[i:i+4] 'TGCA' >>> i 1
您可以随机选择一个起始索引,然后使用切片来提取该子字符串
如果希望序列长度为4的连续性,请选择一个介于0和长度为
X
-4之间的索引,并从该索引中获取4个元素,而不是尝试使用random.choice
从X
中选择字符。示例-相关问题 更多 >
编程相关推荐