用python挑选互补碱基对

2024-06-16 06:35:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试开发一个程序,用户输入一串核苷酸,然后得到互补字符串(例如,CAGT变成GTCA)

我已经建立了一本字典:

dicto = {'A':'T', 'C':'G', 'T':'A', 'G':'C'}

我以字符串的形式输入用户输入,以与字典键交叉引用:

user = raw_input(prompt)

但是,尽管进行了搜索,我还是不知道如何在字典中使用用户输入的多个字符。我想会是这样的:

print dicto[x for x in user]

欢迎任何帮助


Tags: 字符串用户程序inputraw字典字符prompt
3条回答

您可以使用^{}

>>> dicto = {'A':'T', 'C':'G', 'T':'A', 'G':'C'}
>>> user = 'ACTG'
>>> from operator import itemgetter
>>> itemgetter(*user)(dicto)
('T', 'G', 'A', 'C')
>>> ''.join(_)
'TGAC'

为此,使用str.translate是合适的。像这样:

#!python2
import string
trans = string.maketrans("ACTG", "TGAC")
user = raw_input()
print user.translate(trans)
#!python3
trans = str.maketrans('ACTG', 'TGAC')
user = input()
print(user.translate(trans))

你可以用

print("".join([dicto[x] for x in user]))

它的作用是: 创建一个包含正确碱基对的列表,在dicto中查找:

[dicto[x] for x in user]

并通过在所有列表元素之间插入调用该列表的字符串(此处为空字符串,空格是常用选项),将该列表馈送给"".join(),该列表创建一个字符串

相关问题 更多 >