python - 如何识别字典对于提供的输入没有已知值,而不仅仅是导致错误(KeyError)Python 3.6
问题描述
我正在使用 Python 字典将 DNA 碱基读入密码子,但是希望程序能够识别是否输入了无意义的内容。目前发生的所有事情都是在使用类似的东西时出现关键错误
“密码子 += 鳕鱼 [F[x]]”
有没有办法在字典中找不到的字符串(例如)搜索碱基字符串(AGCTATATCAT)?例如,如果其中有其他不是 ACGT 的字符,我将如何检测到这一点?
谢谢
解决方案
验证字符串中的每个字符都是有效基数的一种快速方法是使用该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'}
推荐阅读
- coq - 我如何证明 `add_le_cases` (`forall nmpq, n + m <= p + q -> n <= p \/ m <= q`)
- sql - ORA-00906: 缺少左括号 - 谎言?
- asp.net-core - 除非使用基于 Cookie 的身份验证登录到 ASP.NET 核心站点,否则限制对 IIS 上托管的 WebDav 服务器/文件夹的访问
- telegram-bot - Telegram API 不允许与我的机器人连接
- mongodb - 如何将 MongoDb Altas 连接到 mondoDb Compass?
- javascript - 将 id 发布到多个目标并使用 jquery ajax 从多个目标加载内容?
- javascript - Vue-Chartjs 不渲染图
- python-3.x - 如何制定纸浆指标变量的约束?
- android - 是否有 ADB 命令可以更改已安装应用程序的高级设置?
- blockchain - On-Chain NFT:如何在以太坊区块链上存储像素图像?