||
在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’
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-27 15:15
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社