Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用.insert方法向列表中添加值_Python 3.x - Fatal编程技术网

Python 3.x 如何使用.insert方法向列表中添加值

Python 3.x 如何使用.insert方法向列表中添加值,python-3.x,Python 3.x,我一直在研究一种涉及遗传密码的算法。我首先把所有4个基因基,A,C,T,G和一个列表联系起来。A是1,0,0,0。C是0,1,0,0。T是0,0,1,0,G是0,0,0,1。有两种不同的遗传密码,一种是原始的,另一种是基因突变的。该算法将根据两个遗传密码之间的差异得出数据结论。但首先,我需要对数据进行排序预处理,然后才能使用算法得出结论 我想做的是,当代码在原始代码中看到一个字母时,它应该在复制版本中的相同位置看到该字母。如果你看下面的代码,一个例子是看每个(A&C)中的第一个字母或每个(T&T

我一直在研究一种涉及遗传密码的算法。我首先把所有4个基因基,A,C,T,G和一个列表联系起来。A是1,0,0,0。C是0,1,0,0。T是0,0,1,0,G是0,0,0,1。有两种不同的遗传密码,一种是原始的,另一种是基因突变的。该算法将根据两个遗传密码之间的差异得出数据结论。但首先,我需要对数据进行排序预处理,然后才能使用算法得出结论

我想做的是,当代码在原始代码中看到一个字母时,它应该在复制版本中的相同位置看到该字母。如果你看下面的代码,一个例子是看每个(A&C)中的第一个字母或每个(T&T)中的第二个字母是否相同。如果是,则列表不应更改。例如,在第二个位置,T&T是相同的。这意味着列表将保持不变,为:0,0,1,0。但是,如果它不相同,例如A&C,那么算法应该重叠它们并添加两个字母。所以代码应该是1,0,1,0

到目前为止,代码是这样的:

A = [1,0,0,0]
C = [0,1,0,0]
T = [0,0,1,0]
G= [0,0,0,1]
original = [A,T,T,G,C,T,A]
copy = [C,T,T,A,T,A,A]
final = original # In case you were wondering the purpose of this line is to make a new variable to hold the end result.
for i,v in enumerate(original):
    if v == copy[i]:
      print(v)
    else:
      print(final.insert(i,copy[i])) 
当我运行它时,我得到了“列表索引超出范围”,我试着玩了一下,删除了final=original,出于某种原因,它可以工作,但它没有在应该的时候组合两个不同的字母,它只是说没有

我对编程相当陌生,所以这可能是一个简单的问题,但我想知道如何才能真正让两个不同列表中的两个字母重叠,如果它们不同。

列表在python中是“可变的”,在您的代码中,您的最终名称是对名为“original”的列表的新“引用”,但不是一个新的列表,使用任何一个名称对基础列表所做的任何更改都会影响这两个列表(或者使用两个列表名称都可以看到,但更改只在一个地方)。使用可变对象通常是编码人员的痛苦之源。您可以使用
final=original.copy()
制作副本并对其进行安全操作。请参阅关于SO of的其他讨论。当你开始时很容易被它绊倒