前言:
这篇文章是B站学习python入门基础班的视频的第七章内容,主要讲述的是列表,主要包括字典的创建,以及他的元素的增、删、查、改操作命令。
一、基础知识
可变序列:目前包括字典、列表
不可变序列:目前包括整数,字符串
区别在于可变序列可以进行增、删、查、改操作,而不可变序列不可以进行
二、 字典的组成及原理
字典是由键值对组成的,字典是无序的排列方式,他不是根据你输入键的前后顺序来存储他,而是根据键的哈希值来存储
也是由于这个原因,字典的键必须是一个不可变序列,而且键不可以重复
语法格式如此:字典名={键:值,键:值,…}
字典的实现原理:
他是先由哈希函数计算键从而得到不同键的索引,然后根据键的索引排序键,键中保存的是值的地址,从而达到引用键而找到值的效果
字典特点:
1.字典中键值对是一一对应的,其中,键是不可以重复的,而值是可以重复的
2.字典中的键值对是无序的
3.字典是一种用空间换时间的数据结构
4.字典的键必须是不可变对象
三、字典的创建方式
字典的创建方式总共有两种:
1.通过{}创建字典
score={
'tom':85,'jack':92,'sam':'pass'}
print(score) #输出{'tom': 85, 'jack': 92, 'sam': 'pass'}
print(type(score)) #输出
2.通过内置函数dict()创建字典
在()里面写入键值对,与{}不同的是,这种创建方式为键=值,而不是键:值,这点需要注意
student=dict(tom=85,jack=92,sam='pass')
print(student) #输出{'tom': 85, 'jack': 92, 'sam': 'pass'}
print(type(student))
3.创建一个空列表
empty={
} #输出{}
print(empty)
empty1=dict()
print(empty1)
四、字典元素的获取
字典元素的获取有两种方法:
1.使用[]获取,[]里面是键值
print(score['tom']) #输出58
#print(score['alice']) #如果查找不到,就会报错:KeyError: 'alice'
2.使用get()方法获取
score={
'tom':58,'linda':62,'jack':98}
print(score.get('tom')) #输出58
print(score.get('alice')) #如果查找不到就会输出:None,这个none是可以代替的,在键后面加入替代的值,找不到就会输出替代的值
print(score.get('alice',56)) #输出56,如果查找不到就会默认输出键后面的值
五、字典元素的增删改操作
5.1字典元素的修改
dict={
'tom':56,'jack':59,'marry':53,'刘桂香':77}
print(dict) #输出{'tom': 56, 'jack': 59, 'marry': 53, '刘桂香': 77}
dict['tom']=100
print(dict) #输出{'tom': 100, 'jack': 59, 'marry': 53, '刘桂香': 77}
5.2 字典元素的删除:
dict={
'tom':56,'jack':59,'marry':53,'刘桂香':77}
print(dict) #输出{'tom': 56, 'jack': 59, 'marry': 53, '刘桂香': 77}
del dict['tom'] #删除会删除整个键值对
print(dict) #输出{'jack': 59, 'marry': 53, '刘桂香': 77}
5.3 字典元素的增加
dict={
'tom':56,'jack':59,'marry':53,'刘桂香':77}
print(dict)
dict['alice']=5666
print(dict) #输出{'tom': 56, 'jack': 59, 'marry': 53, '刘桂香': 77, 'alice': 5666}
5.4 字典元素的清空
dict={
'tom':56,'jack':59,'marry':53,'刘桂香':77}
print(dict) #输出{'tom': 56, 'jack': 59, 'marry': 53, '刘桂香': 77}
dict.clear()
print(dict) #输出{}
六、获取字典视图
实际上就是获取字典里面所有的键,所有的值,以及所有的键值对
这三种东西的获取方法各有不同,虽然方法各不一样,但是操作原理,用法都是一样的
6.1 获取所有的键
keys()函数
score={
'tom':58,'linda':62,'jack':98}
a=score.keys()
print(a) #输出dict_keys(['tom', 'linda', 'jack'])
#可以将输出的键进行列表化,获得键的列表
print(list(a)) #输出['tom', 'linda', 'jack']
6.2 获取所有的值
values()函数
score={
'tom':58,'linda':62,'jack':98}
b=score.values()
print(b) # 输出dict_values([58, 62, 98])
print(list(b)) #输出[58, 62, 98]
6.3 获取所有的键值对
items()函数
score={
'tom':58,'linda':62,'jack':98}
print(score.items()) #输出dict_items([('tom', 58), ('linda', 62), ('jack', 98)])
print(list(score.items())) #输出[('tom', 58), ('linda', 62), ('jack', 98)]
七、字典元素的遍历
使用for in循环进行遍历
score={
'tom':58,'linda':62,'jack':98}
for i in score: #这里的i表示的是键,如果要获取字典的值,就需要使用[]获取或者get函数获取
print(i,score[i],score.get(i))
八、字典生成式
实际上和列表生成式差不太多,多使用了一个内置函数zip,而且由于字典是由键值对组成的,所以需要两个可迭代对象
zip函数组成字典生成式里面,如果键的个数和值得个数不相同时,以小的为准
items=['books','fruits','papers']
prices=[98,56,233]
a={
i:j for i,j in zip(items,prices)}
print(a)
prices1=[978,5,5,6451,1] #当键和值的个数不一样的时候,以短的为准
b={
m:n for m,n in zip(items,prices1)}
print(b)
后言:
这篇博客实自己用来记录学习python笔记的博客,由于是初学者,可能博客中会有错误,或者解释不清楚的地方,如果有什么不懂,欢迎打扰我,只有在不停的犯错中,才可以进步。