python - 我试图替换字符串中的所有字符,但它仍然没有按预期工作?
问题描述
作为函数的一小部分,此代码旨在将所有 'G' 替换为 'C',将所有 'T' 替换为 'A',反之亦然,但它仍然无法按预期工作,它仅替换了几个实例而不是替换他们全部。
dna1.txt = "GGTACGGATG"
file = open('dna1.txt')
contents = file.read()
replaced_contents = (contents.replace('G', 'C').replace('T', 'A',)
.replace('A', 'T').replace('C', 'G'))
print("Complement: {0}" .format(replaced_contents))
解决方案
你的替补正在与自己作斗争。
您的第一个替换通过并将所有“G”替换为“C”:
CCTACCCATC
然后您的第二次替换将通过并用“A”替换所有“T”:
CCAACCCAAC
然后第三次替换出现并用“T”交换所有“A”(包括您之前交换为“A”的“T”):
CCTTCCCTTC
最终替换扫过并用“G”交换所有“C”(包括您之前交换为“C”的“G”):
GGTTGGGTTG
这会起作用,但作为免责声明,这是我第一次看到 python,这可能不是一个好的代码!
contents = "GGTACGGATG"
replaced_contents = ""
for c in contents:
if c == 'G':
replaced_contents += 'C'
elif c == 'C':
replaced_contents += 'G'
elif c == 'T':
replaced_contents += 'A'
elif c == 'A':
replaced_contents += 'T'
else:
replaced_contents += c
print("Complement: {0}" .format(replaced_contents))
输出:
Complement: CCATGCCTAC
也可以通过字典替换来做到这一点:
contents = "GGTACGGATG"
replacement = {
'G':'C',
'C':'G',
'T':'A',
'A':'T'
}
replaced_contents = ""
for c in contents:
replaced_contents += replacement.get(c) or c
print("Complement: {0}" .format(replaced_contents))
推荐阅读
- javascript - 使用 HTML 和 CSS 的可滚动父级上的子菜单
- java - 如何使用球衣进行异步方法调用?
- excel - 在没有查询的情况下将值除以数据透视表中另一列的总和
- xampp - 在 Windows Server 2012 64 位上安装 XAMPP 32 位
- angular - 为什么原始形式总是在角度有效
- c++ - 概念评估能否取决于评估的位置?
- drupal - Drupal 8.6 无法主题化视图
- sql - 选择查询 0=0 Vs 不存在
- html - 如何在 HTML 中使用 HTML 实体代码而不是字符
- kubernetes - 将 aksapp.io 分配给有效的 DNS 名称