1 问题
DNA的四种碱基元素是腺嘌呤(A)、鸟嘌呤(G)、胞嘧啶(C)和胸腺嘧啶(T),在不考虑碱基之间的配对,如何输出特定长度下,所有的组合、以及组数。
2 方法
- 读取用户输出的数字,做特定的长度
- 引入copy,使用copy模块中的deepcopy()函数来深拷贝一个对象, 它可以用来深度复制一个对象。这意味着,它不会只复制对象的引用,而是会创建一个新的对象,其内容和原对象完全相同。
- 利用循环拼接的方法,实现任意长度碱基对的排列
通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。
代码清单 1
代码语言:text复制mport copy
#输入特定长度
loop=int(input("请输入特定长度(1-4):"))
param=["A","G","C","T"]
all_str=['']
# 循环
# 1 [A,G,C,T]
# 2 [AA,GG,CC...........TT]
# 3 [AAA,GGG................TTT]
# n [AAAAAA................TTTTTTTTTTTT]
for i in range(1,loop 1):
temp_list=copy.deepcopy(all_str)
all_str=[]
for a in temp_list:
for p in param:
all_str.append(a p)
print(len(all_str),all_str)
3 结语
针对实现特定长度的DNA排列问题,提出deepcopy()函数方法,并且使用循环拼接的办法,实现任意长度碱基对的排列。通过此次实验,证明该方法是有效的,本文的方法只可研究位数较小的排列,若数字过大,内存不足,运行会受影响,未来可以继续研究关于更多位数的更高效率的排列组合。