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)

tihuan

  • 元组解包:
    元组解包指将元组当中的每⼀个元素都赋值给⼀个变量
  • 对于元素比较多元组如果只是想输出一些固定的元素,则可以通过 [*元素] 的形式对剩余元素进行打包,打包的类型是一个列表。
    举个栗子:
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).字典的基本语法

因为比较多,所以局一部分栗子

  • 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)


猜你喜欢

转载自blog.csdn.net/weixin_45095678/article/details/106576636