这应该是一个非常简单的问题,但我卡住了。我想要迭代地将字符串“PEPTIDE”中的每个字符替换为“A”,结果为:“AEPTIDE”,“PAPTIDE”,“PEATIDE”等。我知道在Python中字符串是不可变的,所以我首先将字符串转换为列表,然后设置计数器从0到len(str),然后用“A”替换第i个字符并重新将字符串连接起来。由于某些原因,我的代码没有逐步替换A,而只是在每个位置添加了A:
结果: AEPTIDE AAPTIDE AAATIDE AAAAIDE AAAAADE AAAAAAE AAAAAAA
有什么建议吗?似乎问题出现在我试图创建一个新变量pepSeq2来避免替换pepSeq中的所有字符为A。
pepSeq = list("PEPTIDE")
x = range(len(pepSeq))
for i in x:
pepSeq2 = pepSeq
pepSeq2[i] = 'A'
print("".join(pepSeq2))
结果: AEPTIDE AAPTIDE AAATIDE AAAAIDE AAAAADE AAAAAAE AAAAAAA
有什么建议吗?似乎问题出现在我试图创建一个新变量pepSeq2来避免替换pepSeq中的所有字符为A。
pepSeq2 = pepSeq[:]
来复制列表,而不是引用它。 - Nick