如何识别字典对于提供的输入没有已知值,而不仅仅是导致Python3.6中的错误(KeyError)

2024-09-23 20:28:52 发布

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

我正在使用Python字典将DNA碱基读入密码子,但我希望程序能够识别是否有无意义的输入。目前所发生的一切是,当使用类似

“密码子+=cod[F[x]]”

是否有一种方法可以在基址字符串(例如AGCTATCAT)中搜索字典中未找到的字符串?例如,如果其中包含其他非ACGT的字符,我将如何检测该字符

谢谢


Tags: 方法字符串程序字典字符dnacod意义
2条回答

验证字符串中的每个字符是否为有效基的快速方法是使用^{}方法。例如

valid_bases = set('ACGT')

for s in ('AGCTAT', 'ATCQAT'):
    print(s, valid_bases.issuperset(s))

输出

AGCTAT True
ATCQAT False

如果要识别非法字符,可以使用set difference

valid_bases = set('ACGT')

for s in ('AGCTAT', 'ATCQAT', 'ATCQAZT'):
    bad = set(s) - valid_bases
    print(s, bad or "ok")

输出

AGCTAT ok
ATCQAT {'Q'}
ATCQAZT {'Z', 'Q'}

通过执行以下操作,可以检查字符串中的所有字符是否位于给定的set中:

if set(string).difference(set("AGCT")):
    # There are characters other then 'AGCT' in string
else:
    # All characters in the string are one of "AGCT"

相关问题 更多 >