首页 > 编程语言 >python in--总结

python in--总结

时间:2022-10-13 10:22:36浏览次数:77  
标签:总结 set 迭代 tuple python list -- 查找 dict

“in”的存在使得python在操作可迭代对象时简单得多,这便是“in”存在的一个最大的好处

1.用于判断(查找)元素是否在可迭代对象中(不包括生成器;但包括set集合,set不能迭代,但是也能用“in”来查找元素):

xxx in XXX :判断xxx是否在XXX中, 如果在,返回真,不在,返回假。
xxx not in XXX :判断xxx是否不在XXX中, 如果不在,返回真,在,返回假。

可配合“if”和“while”使用:

if x in X
if x not in X
while x in X
while x not in X

2.用于逐个取可迭代对象的元素, 一般要配合for使用:

我们可能常用到的可迭代的对象包括:string, list, dict, tuple, generator, range函数

例子:

list_1 = [n for n in range(10)]
for i in list:
	print(i)

3.在前面1的条件下,“in”的效率在不同的对象中查找元素效率是很不一样的。

tuple, list, dict, set用“in”来查找元素时效率是相差很大的。
主要是因为dict, set背后原理是一个散列表。而tuple, list只是一个单纯类似与数组的结构

那什么是散列表?

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。

dict,set比tuple, list快了不止一点。所以说在数据量比较大的且需要查找元素的时候请使用dict, set,这样带来的速度提升不是一点点那么简单了
————————————————
版权声明:本文为CSDN博主「Kyda」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_37720172/article/details/78636314

标签:总结,set,迭代,tuple,python,list,--,查找,dict
From: https://www.cnblogs.com/hzk20220818/p/16787234.html

相关文章

  • vuepress 运行报错 Vue packages version mismatch:
    vuepress运行报错Vuepackagesversionmismatch:D:\vuepress-test>npmrundocs:devnpmWARNconfigglobal`--global`,`--local`aredeprecated.Use`--location......
  • Android Studio 出现 Failed to create JVM
    failedtocreateJVM:JVMpath:"C:\ProgramFiles\XXXXXX\XXXX\xxxxx\"ifyouhavea64-bitjdkinstalled,defineaJAVA_HOMEvariableinComputer>systemv......
  • Java基础语法 二维数组
    二维数组packagecom.ljg.java;/**二维数组的使用:* 规定:二维数组分为外层数组的元素,内层数组的元素* int[][]arr=newint[4][3];* 外层元素:arr[0],arr[......
  • python 排序函数--sort()--sorted()
    python中有两种排序方法,list内置sort()方法或者python内置的全局sorted()方法区别为:sort()方法对list排序会修改list本身,不会返回新list。sort()只能对list进行排序。......
  • 搭建Hadoop伪分布模式环境实验
    我使用的是Finalshell,不是Xshell,各位可以参考一下1.首先,开启虚拟机,等待连接成功,输入"start-all.sh"启动HDFS,Yarn,然后输入jps查看进程是否正常2.打开HDFSWeb界面,在本地......
  • 网页乱码问题
    字符编码是指对于一个具体的“文字”(字符),其内部设定的编号是多少(是一个数字)。任何一个国家的文字的字符,都会在操作系统内部预先定义好一个编码值——这就是字符编码。在htm......
  • sqoop将hive数据导出到mysql
    sqoop的安装和使用教程参考博客:https://blog.csdn.net/qq_42502354/article/details/106727502,sqoop连接mysql:bin/sqooplist-databases--connectjdbc:mysql://linux-c......
  • libprotobuf ERROR google/protobuf/text_format.cc:245
    root@ad2729f7fda4:/opt#caffe/build/tools/caffetrain-solver/opt/solver.prototxtlibdc1394error:Failedtoinitializelibdc1394I110610:31:16.409225114caf......
  • Visual Tracking Using Attention-Modulated Disintegration and Integration
    题目:VisualTrackingUsingAttention-ModulatedDisintegrationandIntegrationAbstract本文使用注意力调制的解体和整合进行跟踪,把一个目标分解成多个认知单元,并且训练多......
  • mysql中timestamp和datetime类型的区别
    一、MySQL中表示当前时间的方法:CURRENT_TIMESTAMPCURRENT_TIMESTAMP()NOW()LOCALTIMELOCALTIME()LOCALTIMESTAMPLOCALTIMESTAMP()二、关于TIMESTAMP和DATETIME的比较一个完......