Python基础语法----元组、字典、集合

本文详细介绍了Python中的三种基本数据结构:元组、字典和集合。元组是有序且不可变的元素集合,常用于存储不可变数据。字典是无序的键值对集合,提供了高效的查找机制。集合同样无序,但元素不可重复,分为可变集合和不可变集合。文章涵盖了它们的定义、操作、特点以及在实际编程中的应用。
摘要由CSDN通过智能技术生成

目录

一、元组

二、字典

三、集合


一、元组

有序的不可变的元素集合(与列表的区别就是元组元素不能修改!)

定义:
一个元素写法:t = (666,)
多个元素写法:t = (1,2)
多个对象,以逗号隔开,默认为元组:tuple = 1, 2, 3, “s”
从列表转换成元组:tuple(列表)


获取操作(常用操作只有查):
tuple.count(item) 统计元组中指定元素的个数
tuple.index(item) 获取元组中指定元素的索引
len(tuple) 获取元组中元素的个数
max/min(tuple)获取元组中最大/最小的值

判定:
元素 in 元组
元素 not in 元组

拼接:
乘法:(元素1, 元素2, ……) * int类型数值 = (元素1, 元素2, 元素1, 元素2,……)
加法:(元素1, 元素2) + (元素a, 元素b) = (元素1, 元素2, 元素a, 元素b)

拆包:
a, b = (1, 2)
a = 1 b = 2

-----------------------------------------------------

二、字典

无序的,可变的键值对集合

方式1:{key:value, key:value, …}
方式2:fromkeys(S, v=None},静态方法,类和对象都可以调用,类调用dict.fromkeys(“abc”, 123},结果:{‘a’:123, ‘b’:123, ‘c’:123}

注意事项:
key不能重复,必须是任意不可变类型
若key重复,后边的会把前面的覆盖掉(原因是Python的字典,采用哈希的方式实现。)

存储过程:
初始化一个哈希表,根据给定的key,通过某些操作,得到一个“哈希表”中的索引位置,根据索引位置,存储给定的“值”

查找过程:
再次使用哈希函数将key转化为对应的列表的索引,并定位到列表的位置获取value

存在意义:
可以通过key,访问对应的值,使得这种访问更具有意义,查询效率得到很大的提升

增:
dic[key] = value,当key不存在,就是一个增加

删:
del dic[key]
dic.pop(key[, default]) 删除指定的键值对,并返回对应的值,若key不存在,那么直接返回给定的default值,不做删除动作,如果没有给定默认值,则报错
dic.popitem() 删除按升序排序后的第一个键值对,并以元组的形式返回该键值对,如果字典为空,则报错
dic.clear() 删除字典内所有的键值对,返回None,注意:字典对象本身还存在,只不过内容被清空

改: 只能改值,不能改key
修改单个键值对:dic[key] = value
修改多个键值对:oldDic.update(newDic) 根据新字典,批量的修改旧字典中的键值对,如果旧字典没有的对应的key,则新增键值对

查:
获取单个值
dic[key] :获取单个值
dic.get(key[, default]):不存在返回默认值,没有默认值报错。不会新增键值对
dic.setdefault(key[, default]) 获取指定key对应的值,若不存在,则设置给定默认值,并返回默认设置,如果没有设置默认值,则用None代替
获取所有值
dic.values()
获取所有键
dic.keys()
获取字典的键值对
dic.items()

遍历:
for in 先获取所有的值/键/键值对,再遍历
for x, y in info.items()

计算:
len(info) 键值对的个数

判定:
x (not) in dic 判定dic 中的key,是否存在x

-----------------------------------------------------

三、集合

无序的,不可随机访问的,不可重复的元素集合
分为可变集合(set)和不可变集合(frozenset,创建好之后,无法增删改)

定义:
可变集合:s = {1, 2, 3}或者s = set(可迭代对象)
不可变集合:s2 = frozenset(iterable),为dic时,只会获取key作为set的元素

注意事项:
1.创建一个空集合时,需要使用set()或者frozenset(),不能使用s = {},会被识别成字典
2.集合中的元素,必须是可哈希的值,如果一个对象在自己的生命周期中有一哈希值时不可改变的,那么它就是可哈希的。理解为不可变类型。
3.如果集合中的元素值出现重复,则会被合并为1个

增:
s.add()

删:
s.remove(element)指定删除set对象中的一个元素,若没有,返回错误
s.discard(element) 指定删除set对象中的一个元素,若没有,则do nothing
s.pop(element) 指定删除集合中的一个元素,若集合为空,则返回错误
s.clear()晴空一个集合的所有元素

改:
元素为不可变类型,不能修改

查:
无法通过key或者索引进行查询
1.通过 for in 进行遍历
2. 通过迭代器进行访问

交集:
逻辑与“&”
intersection(Iterable) 字典值判定key。当可变集合与不可变集合取交集时,结果取前面集合的属性。


intersection_update() 交集计算完毕后,会再次赋值给原对象,会更改原对象,所以只适用于可变集合

并集:
union()返回并集

逻辑或“|”:

update():更新并集,适用于可变集合

差集:
difference()
算术运算符减“-”
difference_update()

判定:
isdisjoint()两个集合不相交
issuperset()一个集合包含另一个集合
issubset()一个集合包含于另一个集合
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值