Python基础:List、Tuple、Dict、Set四大数据类型详解

创始人
2024-12-31 12:25:18
0 次浏览
0 评论

Python中list,tuple,dict,set的区别和用法

Python语言简洁明了,用更少的代码就能完成同样的任务。
其中,Python内置的四种数据类型缺一不可:list、tuple、dict、set。
以下是它们的简要总结。
列表的字面意思是集合。
在Python中,列表中的元素用方括号[]表示。
您可以定义如下列表:L=[12,'China',19.998]不需要。
相同的。
当然,你也可以定义一个空列表:L=[]Python中的列表是有序的,所以如果你想访问列表,你必须通过序号显式地访问它,就像数组的下标一样,下标从0开始。
:>>>printL[0]12不能超过限制,否则会报错>>>printL[3]traceback(mostresntcalllast):file"",line1,inIndexError:listindexoutofrangeList也可以按相反顺序访问。
序列号由下标表示,例如“倒数第x个”。
例如,下标-1代表倒数第二个元素:>>>L=[12,'china',19.998]>>>printL[-1]19.998-4显然越界了。
]Traceback(mostrecentcalllast):File"",line1,inprintL[-4]indexError:listindexoutofrange>>>list通过内置的append()方法添加到最后,通过insert()方法添加到指定位置(下标从0开始):>>>L=[12,'中国',19.998]>>>L.append('杰克')>>>printL[12,'下巴'a',19.998,'Jack']>>>L.insert(1,3.14)>>>printL[12,3.14,'China',19.998,'Jack']>>>通过pop()删除最后一个尾部元素,也可以指定一个参数来删除指定位置:>>>L.pop()'Jack'>>>printL[12,3.14,'中国',19.998]>>>L.pop(0)12>>>printL[3.14,'中国',19.998]也可以复制并替换为下标可以更改>>>L[1]='America'>>>printL[3.14,'America',19.998]TupleTuple这可以被视为“未更改”的列表,也可以通过下标访问,用括号(表示。
):>>>t=(3.14,'中国','杰森')>>>printt(3.14,'中国','json'),但无法重新分配和替换:>>>t[1]='America'traceback(mostreCentcalllast):File"",line1,int[1]='America'TypeError:'tuple'objectdoesnotsupportitemassignment也没有pop、insert或append方法。
您可以创建空元素的元组:t=()或单元素元组(例如添加逗号以防止和声明整数歧义):t=(3.14,)那么元组类型有什么用呢?要知道,如果想要一个函数返回多个返回值,只需要返回一个元组即可,因为一个元组保存多个值,并且是不可变的(就像Java中的final一样)。
当然,元组也是可变的,如下所示:>>>t=(3.14,'China','Jason',['A','B'])>>>print(3.14,'China','Jason',['a','b'])>>>l=t[3]>>>l[0]=122>>>l[1]=233>>>打印(3.14,'China','Jason',[122,233])这是因为所谓元组的不变性是指指向状态的不变性,因为这个例子中的第四个元素不是基本类型,而是列表类型,所以指出链表的位置保持不变,但是链表本身的内容可能会改变,因为链表本身并不是在内存中连续分配的。
DictDict是Python中非常重要的数据类型。
就像它的字面意思一样,它实际上是一个键值对,你可以使用大括号{}在C语言中像结构体一样定义它:>>>d={'Adam':95,'Lisa':85,'巴特:59,'Paul':75}>>>printd{'Lisa':85,'Paul':75,'Adam':95,'Bart':59}你可以看到打印的结果是key:value的格式,其长度可以通过len函数计算(也可以使用list、tuple):>>>len(d)4直接传递给keyvalue。
指令:>>>printd{'Lisa':85,'Paul':75,'Adam':95,'Bart':59}>>>d['Jone']=99>>>printd{'Lisa':85,'Paul':75,'Adam':95,'Joan':99,'Bart':59}要访问列表和元组内容,Dict使用键进行访问:(字符串、整数、浮点数,元组可以作为dict的key)>>>printD['Adam']95如果key不存在,会报错。
Go:>>>printd['Jack']traceback(mostrecentcalllast):file"",line1,inprintd['Jack']KeyError:'Jack'所以在访问之前,最好检查密钥是否存在:>>>if'Adam'ind:print'existkey'existkey或直接使用insureget方法:>>>printd.get('Adam')95>>>printtd.get('Jason')None就遍历指令而言,实上是遍历其所有键的集合,然后使用这个键来获取对应的值就是:>>>forkeyind:printkey,':'。
,d。
get(key)Lisa:85Paul:75Adam:95Bart:59Dict的一些特点是:搜索速度快。
无论是10还是10万,速度都是一样的,但代价是更大的内存量。
相比之下,List占用的内存较少,但搜索速度较慢。
这就像数组和链表之间的区别。
数组不知道要开辟多少空间,所以往往一开始就开辟更大的空间,但直接通过下标查找速度更快,而链表占用的空间更少;位置,但顺序遍历会导致搜索时非常缓慢且随机的遍历。
字典不受控制,而List是一个有序集合,因此Dict不能用于存储有序集合,因为键是不可变的,而值是可变的。
一旦将键值对添加到字典中,其对应的键就无法更改,但值可以更改。
因此,列表不能用作字典的键,但可以用作值:>>>printd{'Lisa':85,'Paul':75,'Adam':95,'Joan':99,'巴特':59}>>>d['newlist']=[12,23,'杰克']>>>printd{'巴特':59,'newlist':[12,23,'杰克'],'亚当':95,'琼':99,'丽莎':85,"Paul":75}密钥不能重复。
(下面的例子中添加了一个'Jone':0,但实际上'Jone'的键已经存在,所以简单地改变了原来的值)>>>printd{'Bart':59,'NewList':[12,23,'杰克'],'亚当':95,'琼':99,'丽莎':85,'保罗':75}>>>d['琼']=0>>>printd{'巴特':59,'新列表':[12,23,'杰克'],'亚当':95,'琼':0,'丽莎':85,'保罗':75}字典合并,如何将两个dict合并为一个,可以使用dict函数号:>>>d1={'mike':12,'jack':19}>>>d2={'jone':22,'ivy':17}>>>dMerge=dict(d1.items()+d2.items())>>>printdMerge{'mike':12,'jack':19,'jone':22,'ivy':17}或>>>dMerge2=dict(d1,**d2)>>>printdMerge2{'mike':12,'jack':19,'jone':22,'ivy':17}方法2比方法1快得多。
方法2相当于:>>>dMerge3=dict(d1)>>>dMergee3.update(d2)>>>printdMerge{'mike':12,'jack':19,'jone':22,'ivy':17}SetSet就像从Dict中提取key一样,类似于列表,但内容不能重复。
它是通过调用set()方法创建的:>>>s=set(['A','B','C'])正如字典是无序的一样,集合也是无序的并且不能包含重复的元素。
能。
访问集合仅意味着检查集合是否包含元素:>>>print'A'insTrue>>>print'D'insFalse区分大小写。
同样遍历:s=set([('Adam',95),('Lisa',85),('Bart',59)])#tupleforxins:printx[0],':',x[1]>>>Lisa:85Adam:95Bart:59通过add和remove来添加和删除元素(添加的时候不要一直重复元素),使用set的add()方法:>>>s=set([1,2,3])>>>s.add(4)>>>printset([1,2,3,4])如果添加的元素已经存在于集合中,add()返回错误,不会报错,但不会添加:>>>s=set([1,2,3])>>>s.add(3)>>>printset([1,2,3])Remove对于集合中的元素,使用集合的remove()使用:>>>s=set([1,2,3,4])>>>s.remove(4)>>>printset([1,2,3])如果删除的元素存在于如果没有设置,remove()会报错:>>>s=set([1,2,3])>>>s.remove(4)Traceback(mostreCentcalllast):File"",line1,inKeyError:4所以如果我们这样做想要确定一个元素是否满足某些不同的条件,最好的选择是使用集合:months=set([')。
一月','二月','三月','四月','五月','六月','七月','八月','九','十月','十一月','十二月',])x1='二月'x2='太阳'ifx1inmonths:print'x1:ok'else:print'x1:error'ifx2inmonths:print'x2:ok'else:print'x2:error'>>>X1:okx2:error

python判断一个数是否在列表中?

要检查某个值是否在Python中的列表中,可以使用关键字。
如果值在列表中,则返回此关键字,否则返回。
例如,您可以使用以下代码来检查该值是否在列表中:inTrueFalse42my_list

发出此代码是因为该值不在列表中。
但是,例如,如果您更改要包含的值,则会发出代码,指示该值位于列表中。
False42my_listmy_list42[1,2,3,4,5,42]True

您还可以使用此关键字来检查某个值是否不在列表中。
例如,您可以使用以下代码来检查它是否不在列表中:notin42my_list

发出此代码是因为它不在列表中。
如果更改要包含的值,将发出代码指示该值位于列表中。
True42my_listmy_list42False

总的来说,关键字and提供了一种简单便捷的方法来检查值是否在Python列表中。
innotin

答案很难,请采纳

热门文章
1
Python中的format()方法:字... formatformat在python中的含义2222.22E+00Format...

2
Python编程入门:全面解析Pytho... python的基本语法基本的Python语法如下:1.变量的定义。在编程语言中,...

3
Python字符串大小写转换方法全解析 python中字母的大小写转换怎么实现?在Python中,大小写转换由内置函数处...

4
Python字典:轻松获取最小值键与计算... python在一个字典里,返回值最小元素对应的键,救解在Python字典中,如果...

5
Python字符串去重空格:strip(... Python去除字符串中空格(删除指定字符)的3种方法在Python编程中,处理...

6
Python数组元素数量计算技巧分享 Python输出数组有多少个元素?简介:在本文中,首席CTO笔记将向您介绍Pyt...

7
简述python中pass的作用 pass语句的作用在许多编程语言中,包括Python;PASS语句用于在代码块中...

8
Python def 关键字详解:函数定... def是什么意思编程?戴夫是什么意思?def是Python中的函数定义关键字,用...

9
python不区分大小写的方法 Python字符串不区分大小写在Python中,字符串操作默认区分大小写。但有时...

10
Python字典操作全解析:添加、修改、... Pythondict字典基本操作(包括添加、修改、删除键...