Python 学习笔记5

Python 学习笔记

拆包与解包

可以使用下列语句给变量赋值

list=[1,2,3,4,5]
a,b,c,d,e=list

\(a,b,c,d,e\)会被对应下标的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(),因为{}会与创建空字典冲突

posted @ 2022-06-27 16:01  源小枔儿  阅读(17)  评论(0编辑  收藏  举报