首页 > 解决方案 > 如何识别字典对于提供的输入没有已知值,而不仅仅是导致错误(KeyError)Python 3.6

问题描述

我正在使用 Python 字典将 DNA 碱基读入密码子,但是希望程序能够识别是否输入了无意义的内容。目前发生的所有事情都是在使用类似的东西时出现关键错误

“密码子 += 鳕鱼 [F[x]]”

有没有办法在字典中找不到的字符串(例如)搜索碱基字符串(AGCTATATCAT)?例如,如果其中有其他不是 ACGT 的字符,我将如何检测到这一点?

谢谢

标签: pythondictionary

解决方案


验证字符串中的每个字符都是有效基数的一种快速方法是使用该set.issuperset方法。例如,

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'}

推荐阅读