Python 学习笔记5
Python 学习笔记
拆包与解包
可以使用下列语句给变量赋值
list=[1,2,3,4,5]
a,b,c,d,e=list
会被对应下标的list内容赋值
但当元素数量和列表/元组元素数量不同时,无法进行正常赋值,此时可以使用*
如
list=[1,2,3,4,5]
a,*b=list
print(a,b)
结果为
1 [2,3,4,5]
*
表示未知个数的元素,会把对应位置赋值剩下的元素组成一个列表赋值给*b,即把任意多的元素打包
*
的作用是进行拆包,也就是把列表转化为散列的元素
字典
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国上海'}
info['name'] # 字典使用键来获取对应的值
特点:
列表中找某个元素时,是根据下标进行的;字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')
字典的每个元素由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值
键可以使用数字、布尔值、布尔值、元组等不可变数据类型,但是一般习惯使用字符串
每个字典里的key都是唯一的,如果出现了多个key,后面的value会覆盖前一个key对应的value.
dict1={} # 空字典
dict2=dict() # 空字典
dict3={'ID':'123456','name':'xiaomin','age':'18'} #创建字典
dict4=dict([('ID','123456'),('name','xiaomin'),('age','18')]) #通过列表类型转换创建字典
系统会自动识别元组中连续的两个元素作为key和value值
修改与添加
字典中键key的值不可以被修改,只能被增添删除,但是key值对于的value值可以被修改
可以直接通过类似下标存储的方式找到key值对应的value值
当该key值存在时,则是修改该value值;若不存在,则会自动添加上这样的一个键值对
或者使用dict.setdefault(key,value)
,但用的少,只能起到添加作用,而不能修改,当字典中已经存在此key值时,不会修改value内容
dict1.update(dict2)
可以将dict2添加到dict1上,实现字典合并
删除
dict.clear()
删除所有键值对
dict.pop(key)
根据key值删除对应的键值对,同时返回key对应的value值
dict.popitem()
无参数,删除字典的最后一个键值对,同时返回最后一个键值对形成的二元组
del dict
del dict[key]
删除对应键值对,del dict
会把整个变量回收,删除指向
遍历与查询
dict.get(key)
根据key返回对应的value值,但当key不存在时,get函数返回Non,而用dict[key]会报错,所以一般使用get()
来取值
同时get可以有第二个参数dict.get(key,value)
,当key不存在时会返回给定的默认值value
for i in dict
print(i)
直接遍历字典时,取出来的是字典的key值
若要获取所有的value值,dict.values()
获取一个由所有的value组成的列表
则遍历value值可以使用
for i in dict.values()
print(i)
同理要获取所有的key值,可以使用dict.keys()
要获取所有的项,可以使用dict.items()
返回值为键值对形成的二元组的列表
for k,v in dict.items()
print(k,v)
可以获得key和value值
创建新字典
dict.fromkeys(seq, value)
# seq -- 字典键值列表。
# value -- 可选参数, 设置键序列(seq)的值。
当value不指定时,默认为None,新字典中会把value付给每一个seq内键值的value
集合
集合(set)是一个无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合。
当大括号内不是键值对时创建的即为一个集合
注意:创建一个空集合时必须使用set(),因为{}会与创建空字典冲突
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!