栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

检查列表中是否存在项目的最佳方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

检查列表中是否存在项目的最佳方法?

您可以使用

itertools.chain.from_iterable

>>> from itertools import chain>>> example_list = [['aaa'], ['fff', 'gg'], ['ff'], ['', 'gg']]>>> '' in chain.from_iterable(example_list)True

万一如果内部列表更大(超过100个项目),则

any
与生成器一起使用的速度将比上面的示例更快,因为这样,使用Python
for循环的速度代价将由快速
in
操作来补偿:

>>> any('' in x for x in example_list)True

时序比较:

>>> example_list = [['aaa']*1000, ['fff', 'gg']*1000, ['gg']*1000]*10000 + [['']*1000]>>> %timeit '' in chain.from_iterable(example_list)1 loops, best of 3: 706 ms per loop>>> %timeit any('' in x for x in example_list)1 loops, best of 3: 417 ms per loop# With smaller inner lists for-loop makes `any()` version little slow>>> example_list = [['aaa'], ['fff', 'gg'], ['gg', 'kk']]*10000 + [['']]>>> %timeit '' in chain.from_iterable(example_list)100 loops, best of 3: 2 ms per loop>>> %timeit any('' in x for x in example_list)100 loops, best of 3: 2.65 ms per loop


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/640856.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号