首页 > 编程语言 >[转载] Python:使用in判断元素是否在列表(list)中,如何提升搜索效率?

[转载] Python:使用in判断元素是否在列表(list)中,如何提升搜索效率?

时间:2023-03-17 13:12:05浏览次数:49  
标签:set Python 元素 list 列表 搜索 key

经常会做的一个操作是使用in来判断元素是否在列表中,这种操作非常便捷,省去了自行遍历的工作,而且因为大多数时候列表数据量比较小,搜索的速度也能满足需求。


key_list = [1, 2, 3, 4, 5, 6, 7, 8]
key = 10

if key in key_list:
	print("Hello!")

但是,凡是就怕个但是,当列表数据量非常大的时候,比如你要在一个长度为一百万(1000000)的列表中搜索某个元素是否存在,这种搜索变得非常低效,很可能需要花费几个小时甚至几天时间来处理你的数据,这种效率是无法接受的。

如何能够快速判断某个元素在一个数据集中?答案是使用集合(set。相比于使用列表来存储我们的数据集,我们使用集合来存储数据集只需要多加一个步骤,即将列表集合化(以列表为参数,使用set函数进行初始化),而判断是否包含仍用in

key_list = [1, 2, 3, 4, 5, 6, 7, 8]
key = 10

key_set = set(key_list)

if key in key_list:
	print("Hello!")

使用集合来存储数据集并做包含关系的判断,可以大大提升搜索速度!!!

来源

转载自: Python:使用in判断元素是否在列表(list)中,如何提升搜索效率?

原作者: 莫小葉的自留地

标签:set,Python,元素,list,列表,搜索,key
From: https://www.cnblogs.com/xiamuguizhi/p/17226259.html

相关文章

  • Python 中,set() 是一个内置函数,它用于创建一个集合(set)。
    在Python中,set()是一个内置函数,它用于创建一个集合(set)。集合是一种无序的、不重复的的数据集合,它的元素可以是任何不可变的数据类型,如整数、浮点数、字符串、元组等。......
  • python Non-zero exit code (2)
    一、相关命令python进入命令行命令,python退出命令,quit() 二、Non-zeroexitcode(2)解决方案直接在pyCharm中使用终端命令,确保在同一个项目之下对于不同的pyt......
  • JAVA 删除 List 中的元素
    删除List中的元素会产生两个问题:删除元素后List的元素数量会发生变化;对List进行删除操作可能会产生并发问题;我们通过代码示例演示正确的删除逻辑packagecom......
  • python 排序算法
    冒泡排序算法比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。......
  • python中的列表排序
    #列表排序:'''#1.通过sort()方法排序,直接修改原列表defsort_list(list_data,rev=False):L.sort()#reverse默认False升序ifrev:L.sort(reverse=True......
  • 点集从上到下,从左到右进行Z字型排序(C++与python实现,自写)
    C++实现:voidPointDisgus(vector<Point>&Points){Pointt;intn=Points.size();inti,j;vector<Point>OutPoints;vector<Point>Points_......
  • sencha-touch2.0控件nestlist的简单用法
    通过nestlist可以自定义一个有标题到内容的一个组合布局如图<font><font>Ext.create(的“Ext.tab.Panel”,{</font></font><font></font><font><font>全屏:真实,<......
  • ArrayList 和 Vector 的区别是什么?
    同步性Vector是线程安全的,也就是说是它的方法之间是线程同步的,而ArrayList是线程序不安全的,它的方法之间是线程不同步的。如果只有一个线程会访问到集合,那最好是使用Array......
  • Python pyyaml报错:TypeError load() missing 1 required positional argument ‘Loade
    直接开门见山,一个小报错。报错:ERROR-load()missing1requiredpositionalargument:'Loader'报错行:config=yaml.load(f)报错原因:......
  • 接口自动化---数据库断言封装python
    接口自动化---数据库断言封装python前言:在接口测试响应验证中,通常可以通过接口响应值来验证,还可以通过查询数据库信息辅助来验证。接口测试数据清理1、通过Delete接口删......