学习Python的第四节课(+数据类型总结)

it2024-10-18  48

学习Python的第四节课(元组、字典、集合+数据类型总结)

1、数据类型之元组

元组属于不可变的序列,用于存放不能修改的多个数据。

- 访问元组中元素比访问列表中元素的速度快。如果定义了一系列的常 量值,主要用途是对其进行遍历,而不需要对元素进行修改的话,建议使用元组而不是列表。 - 元组使得代码更加安全,例如调用函数时使用元组传递参数可以防止 在函数中修改元组,而使用列表则很难保证这一点。

(1)元组的创建

元组名=(值1,值2,...) 元组名= tuple(值)

知识点:用圆括号和逗号直接创建元组时,逗号是创建元组的关键!

(2)元组与列表区别

- 元组创建后,其元素值是不能通过增加或删除方法来改变(不支持append()、extend()、insert(),pop(),remove()和del()等方法)。只能使用del命令对元组整体删除。 - 虽然元组属于不可变序列,但如果元组中包含可变序列,情况就略有不同。

(3)元组的序列操作

元组可以进行除了列表中可修改的操作以外的其他操作,例如,元素的索引/切片访问、统计元素长度、排序等。 - index(),count(),len(),in/ not in,max/min()/sum)以及+,*等。

知识点:不支持直接修改元组里用逗号隔开的第一层数据,但元组里的列表内部数据可以修改。尽量养成不要修改元组数据的习惯!

(4)序列解包

使用简洁的方式完成复杂功能,比如说,一次给多个变量同时赋值、多个变量值交换等。
序列封包
把多个值赋给一个变量时,Python会自动的把多个值封装成元组。

序列封包例子:

#序列封包,把多个值赋给一个变量 a= 1,2,3 print (a)#打印(1,2,3)
序列解包
把一个序列(列表、元组、字符串等)直接赋给多个变量,此时会把序列中的各个元素依次赋值给每个变量,但是元素的个数需要和变量个数相同。

序列解包例子:

k1,k2,k3,k4 =‘abed' print (k1,k2,k3,k4) #实现变量的值交换 k1,k2,k3,k4=k4,k3,k2,k1 print (k1,k2,k3,k4) #元素个数与变量个数不相等时,解包会报错 k1,k2,k3 = ‘abcde'

(5)生成器推导式

- 用法与列表推导式非常相似,在形式上生成器推导式使用圆括号,而 列表推导式使用方括号。 - 与列表推导式最大的不同是,生成器推导式的结果是一个生成器对象。 具有惰性求值的特点,只在需要时生成新元素,比列表推导式具有更高的效率,空间占用非常少,尤其适合大数据处理的场合。

例:生成器推导式和列表推导式的对比。

parentheses =(x for x in range(10)) parentheses#输出是一个生成器对象。 square-[x for x in range(10)] square#输出是列表[0,1,2,3,4,5,6,7,8,9]

注:生成器对象需要遍历才能输出

遍历生成器对象方法: ①将生成器对象转化为列表或元组 ②使用生成器对象的__next_._(方法或者内置函数next()进行遍历可迭代对象._next_()或者next(生成器对象) ③使用for循环来遍历其中的元素。 不管用哪种方法访问其元素,只能从前往后正向访问每个元素,没有任何方法可以再次访问己访问过的元素, 也不支持使用下标访问其中的元素。当所有元素访问结束以后,如果需要重新访问其中的元素,必须重新创建该生成器对象。

2、数据类型之字典

字典用在需要高速查找的地方。字典是以‘键值对’(key-value pairs)作为元素的一种序列,字典中的每个元素包含用冒号分隔开的“键”和“值”两部分,表示一种映射或对应关系

(1)字典的创建

字典名={‘键1’:‘值1’,‘键2’:‘值2’,...} 字典名=dict(键1=值1,键2=值2,...)#关键字创建字典

注:

字典中的键(key)是唯一的,且是不可变的类型,比如,字符串、数值、元组均可以作为键使用,但是列表、 字典本身以及后面要学习的集合都是不允许作为键来使用。字典的值可以是不唯一的,也可以是任何类型。

(2)字典的常用操作

字典的常用操作主要包括:添加/修改元素、更新字典、删除元素、计算元素长度、访问元素等。
添加、修改字典元素:字典名[键]–值
A添加字典元素 若指定的“键”不存在,以该键值作为下标,给字典元素赋值。 B修改字典元素 若该“键”存在,则表示修改该“键”的值。

更新字典
字典名1.update(字典名2) 方法update()是用“字典2”里的元素来更新“字典1”里的相同元素,不同的元素添加到字典1 里,因此该方法实际上是合并更新(当两个字典里没有相同的元素时就相当于是合并)。

删除字典元素及字典
删除字典中元素的方式: pop(key)—删除字典中键为key的元素。 popitem()—随机删除字典中的元素。 clear()——清除字典中所有的元素。 del字典名[key]——删除字典中键为key的元素。 删除字典对象的方法: del字典对象—从内存中彻底销毁字典对象。

访问字典元素:通过键访问、get方法、items/keys/values方法
通过键访问 使用下标的方式来访问字典中的元素,但与列表和元组不同,字典的下标不是索引,而是字典的“键”,如果指定的“键”不存在则抛出异常。 get()方法 通过字典对象的get()方法访问字典,可以获取指定“键”对应的“值”,如果“键”不存在,则返回None。 items()、keys()、values()方法 items()方法可以返回字典的“键-值对”列表, keys()方法返回字典的“键”列表, values()方法返回字典的“值”列表。

统计字典元素个数
len(字典对象) 使用len方法可以获取字典中元素的个数。

3、数据类型之集合

集合(set)是一种无序的可变序列。与字典一样,集合使用花括号表示,每个 元素之间用逗号(,)隔开。可以将集合理解成字典中键的集合,因此集合中的元素是唯一的、不可重复的。 应用: - 去重 - 关系测试(数学集合运算):测试两组数据之间的交、差、并、子集等关系

(1)集合的创建

集合名={‘元素1’,‘元素2,‘元素3,...} 集合名= set([值1,值2,..])#空集合必须通过这种方式创建set()

(2)集合的操作

集合的常用操作主要包括:添加/修改元素、删除元素、访问元素等。
添加、修改元素:add()、update()方法

add()方法可用于向集合添加一个元素,添加集合中已有元素为无效操作

automorphicNum.add(9) #添加集合元素 automorphicNum. set([9,5,6,76,625,376,25])

update()方法可以同时添加多个元素。

automorphicNum={5,6,25,76,625,376} automorphicNum.update([9,5,76]) #同时添加3个元素 automorphicNum 输出:{9,5,6,76,625,376,25} #重复的值只保留一个
删除元素:pop()、 remove()、discard()、clear()

成员判断操作

in:判断数据在集合中 not in:判断数据不在集合中

访问元素
由于集合是无序的,而且没有字典中的键,因此,不能通过下标和键的方式来访问集合中的元素。Python通过循环遍历的方式来访问集合中的元素。

(3)集合支持的运算

①交集&或set.imteasection():计算不同集合中相同的元素 ②并集│或.union() :计算不同集合中所有不重复的元素 ③差集-或difference : 集合1-集合2 返回集合1中除了集合2元素以外的其他元素。 ④对称差^或sxmmetxic_difference(): 集合1^集合2 返回除了集合1和集合2中共有元素外的其他元素。 ⑤子集运算<或.issubset(: 集合1<集合2 判断集合1是否包含于集合2中,是则返回True,否则返回False.

4、Python数据类型总结

Python数据类型之数据容器对比

最新回复(0)