RichieJu520的个人博客分享 http://blog.sciencenet.cn/u/RichieJu520

博文

一种利用 Python 异常 (Exception) 判断快速检验成员资格的方法

已有 11679 次阅读 2014-3-27 00:09 |个人分类:Python语言|系统分类:科研笔记

python语言编程,我们经常会使用到in来检验成员资格,即某个元素(element)是否属于某个列表 (list) 或字典 (dic). 常用的命令行输入为 for item in lis 或者for key in dic.keys(). 然而, 当列表或字典中储存了大量元素或键值对(>10,000) 且需要执行资格检验元素数量大(>100,000), in 的运行效率非常低, 遍历查询和用户等待时间长.

最近经过测试发现一种利用Python的异常(Exception) 判断来快速检验成员资格的方法, 可显著改善脚本运行效率, 大大缩短执行时间, 特别适合于大样本中成员资格检验 (运行速度可提升几个数量级). 命令行如下, 希望对大家有所帮助.

1.   Highly-efficient 版本:

try:

value = dic[item]

print ‘item in dic’

exceptKeyError:

      print ‘item not in dic’

2.   Lowly-efficient 版本:

if item indic.keys():

print ‘item in dic’

else:

      print ‘item not in dic’

快速使用循环语句从dic中获取lis里面元素对应的值, 无法获取时打印提示, 返回值为NA:

for itemin lis:

try:

value = dic[item]

except KeyError:

             print‘item not in dic’

             value=’NA’




https://blog.sciencenet.cn/blog-695360-779501.html

上一篇:Bowtie2 做 Mapping 及抽取原始 paired-end 序列
下一篇:求助如何设置科学网博文不同段落不同行距
收藏 IP: 222.166.147.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-27 15:15

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部