python练习生|这还是你认识的元组、字典&集合吗?
-
上一篇说了序列中的列表,要说这几个兄弟,大差不差,都是数据类型。上一篇讲了列表的一些操作,所以,这篇只能让三兄弟“斗地主”了(列表兄弟出差了,四兄弟凑不齐,不能“搓麻将”)。
-
这篇博客是对元组、字典、集合的基本应用与讲解
-
如果你想回顾之前序列的分类点击链接即可:一.序列
一.元组(tuple)
1元组的基本介绍
- 元组与列表类似,但是元组是不可变序列(当我们希望数据不改变时,我们可以使⽤元组,其他情况下列表的使用比较多)
2.元组的基本应用
- 我们使用 () 小括号来进行元组的创建
- 当元组中只有一个元素时,需要在该元素后面添加逗号
- 当元组不为空时,可以省略括号。
举个栗子:
t = () #创建元组
print(t,type(t))
t1 = ('意大利炮',1,2)
print(t1,type(t1))
t2 = 1,2,3
print(t2,type(t2))
t3 = (1)
print(t3,type(t3))
t4 = (1,)
print(t4,type(t4))
- 元组的应用方式与列表的应用方式差不多,例如,元组也可以进行索引,用法与列表索引相同,但是不能像列表一样进行索引替换,因为元组是不可变序列。
tup = (9,8,7,6)
print(tup[2])
lst= [9,8,7,6]
lst[2] = 3
print(lst)
tup = (9,8,7,6)
tup[2] = 5
print(tup)
- 元组解包:
元组解包指将元组当中的每⼀个元素都赋值给⼀个变量 - 对于元素比较多元组如果只是想输出一些固定的元素,则可以通过 [*元素] 的形式对剩余元素进行打包,打包的类型是一个列表。
举个栗子:
tup = (1,2,3)
a,b,c,= tup
print('a=',a)
print('b=',b)
print('c=',c)
tup = (4,5,6,7,8)
a,b,*c = tup
print('a=',a)
print('b=',b)
print('c=',c)
注;元组的解包只能使用一次 [*元素] ,元组的解包只是普及一下,不做重点掌握。
二.字典(dict)
1.字典的基本介绍
- 字典:字典也属于数据存储的一种方式,属于⼀种新的数据结构称为映射(mapping)
- 相对列表而言,字典查询数据的功能比较好,然而存储数据的性能较差。
- 字典我们通常称为键值对(key-value)结构
- 在字典中每⼀个元素都有对应的名称,通过对应的名称可以找到指定的元素。这个对应的名称我们称之为key,通过key可以快速查询value 也可以称之为值
- 每个字典中都可以有多个键值对,⽽每⼀个键值对我们称其为⼀项(item)
- 字典的值可以是任意对象。字典的键可以是任意的不可变对象(str、tuple…)
1.字典的基本应用
1).字典的创建
- 字典创建的基本手法:语法 {key:value}
- key和value之间是由:进行连接
- 字典的键是不能重复的,如果出现重复的后⾯的会替换前⾯的。
举个栗子:
d = {"意大利炮":1}
print(d,type(d))
d1 = {"篮球":3,"足球":4,'a':5,'b':6,'a':10}
print(d1)
2).字典的基本语法
因为比较多,所以局一部分栗子
扫描二维码关注公众号,回复:
11414516 查看本文章
- d[key] = value:读取d[key]返回value
①.添加元素
- dict():我们可以使用dict()函数,来进行字典的创建
- update():将其他字典的{key:value}添加到当前的字典当中
- get(key[,default]): 根据键来获取字典的值。第⼆个参数可以指定⼀个默认返回值,当获取不到值的时候会返回默认值
- setdefault(key[,default]): 如果key在字典中,则返回其值。如果不是,则向字典中插入key并返回default(可以设置key对应的值)。
d = dict(意大利炮 = '1',小马哥= '2') #dict()
print(d)
print(d['意大利炮']) #d[key]=value
print(d.get('小马哥','没有对应的值'))
print(d.get('小马','没有对应的值'))
d1 = {'a':3,'d':4}
d.update(d1) #update()
print(d)
r = d1.setdefault('a','3') #setdefault()
print(r)
r1 = d1.setdefault('f','9')
print(r1)
print(d1)
②.删除元素
- clear():从字典中删除所有元素
- del():使用 del d[key] 删除字典中的相应键值对。
- pop(key[,default]): 根据key删除⾃定中的value。第⼆个参数可以指定⼀个返回默认值,当获取不到值的时候会返回默认值。
- popitem() :删除字典最后的⼀个key-value 这个⽅法是有返回值的。删除之后它会将删除的key-value作为返回值返回。
d = {"篮球":3,"足球":4,'a':5,'b':6,'d':10}
del d["足球"] # del d[key]
print(d)
d1 = d.pop('d') # pop()
print(d1)
print(d)
d3 = {"c":3,"e":4,'a':5,'b':6,'d':10}
r = d3.popitem() # popitem()
print(r)
print(d3)
d3.clear() # clear()
print(d3)
③.字典的浅拷贝
- copy():⽤来对字典进⾏浅拷贝
- 什么叫做浅拷贝呢?(浅拷贝相当于你抄别人作业,但是后面你可以对作业进行修改;而深复制则是抄题,一点也不改(除非题目改了,你也会改)潜拷贝只会复制字典本身,如果字典中还有字典是不会进⾏复制的。
d = {"c":3,"e":4,'a':5,'b':6,'d':10}
d1 = d.copy()
print(d)
print(d1)
del d1["c"]
print(d)
print(d1)
d2 = {"a":3,"b":4,'c':5,'d':6,'e':10}
d3 = d2
print(d2)
print(d3)
del d2['d']
print(d2)
print(d3)
④.字典的遍历
- keys():该⽅法返回字典所有的key
- values(): 该⽅法返回⼀个序列 序列中保存有字典的值
- items(): 该⽅法会返回字典中所有的项 它返回⼀个序列,序列中包含有双值⼦序列双值分别是字典中的key和value
- 什么是双值子序列?就是,一个序列中含有两个元素,两个值。
d = {"a":3,"b":4,'c':5,'d':6,'e':10}
print(d.keys())
print(d.values())
print(d.items())
小彩蛋:python官网:映射类型—字典(Mapping Types — dict)
三.集合(set)
1.集合的简单介绍
-集合和列表⾮常相似以下仅列举不同之处:
- 集合只能存储不可变对象
- 集合中存储的对象是⽆序的(相对于输入的顺序来说)
- 集合不能出现重复元素
2.集合的应用
- 使⽤ {} 来创建集合
- 使用 set() 来将序列和字典转换成集合
- 使⽤ len() 来获取集合中元素的数量
- 使用 add() 向集合中添加元素
- 使用 update() 将⼀个集合中的元素添加到另⼀个集合当中
- 使用 pop() 随机删除集合中的⼀个元素,(⼀般是删除最后⼀个元素)
-使用 remove() 删除集合中指定的元素 - 使用 clear() 清空集合
d = {1,2,3,4,5,6} # d = {}创建集合
print(d,type(d))
print(len(d)) # len()获取集合长度
d.add(7) # add()添加元素
print(d)
d1 = {"a":3,"b":4,'c':5,'d':6}
d2 = set(d1) # set()将字典转换成集合
print(d2)
d2.remove('b') # remove()删除指定元素
print(d2)
d2.update(d) # update()将一个集合加入另一个集合
print(d2)
d2.pop() # pop()随机删除一个元素
print(d2)
d2.clear() # clear()删除所有元素
print(d2)
3.集合的运算
咱们先补点数学概念:
- 子集:如果集合A的任意一个元素都是集合B的元素,我们说A是B的子集。
- 真子集:如果集合A的任意一个元素都能够在集合B中寻得,且集合A、B不等,我们说A是B的真子集。
- 子集是包含本身的元素的集合,真子集是除本身以外元素的集合
- 空集是任何集合的子集,但不是任何集合的真子集。
咱们再补点计算机概念: - 如果集合A中的每一个元素都在集合B中,且集合B中可能包含A中没有的元素,则集合B就是A的一个超集。
- 若集合B中一定有集合A中没有的元素,则集合B是集合A的真超集,反过来集合A是集合B的真子集。
符号 | 描述 |
---|---|
& | 交集运算 |
| | 并集运算 |
- | 差集运算 |
^ | 亦或集 |
<= | 检查⼀个集合是否是另⼀个集合的⼦集 |
< | 检查⼀个集合是否是另⼀个集合的真⼦集 |
>= | 检查⼀个集合是否是另⼀个集合的超集 |
> | 检查⼀个集合是否是另⼀个集合的真超集 |
d1 = {9,6,5}
d2 = {9,9,6}
print(d1,type(d1)) # 打印d1和d2的类型
print(d2,type(d2))
print(d1 & d2) # & 交集运算
print(d1 | d2) # | 并集运算
print(d1 - d2) # - 差集运算
print(d1 ^ d2) # ^ 亦或集
print(d1 <= d2) # <= 检查⼀个集合是否是另⼀个集合的⼦集
print(d1 < d2) # < 检查⼀个集合是否是另⼀个集合的真⼦集
print(d1 >= d2) # >= 检查⼀个集合是否是另⼀个集合的超集
print(d1 > d2) # > 检查⼀个集合是否是另⼀个集合的真超集
二号小彩蛋:Python官网:集合(Set Types — set, frozenset)