Python入门5(字典)

本文详细介绍了Python字典的各个方面,包括字典的概念、创建、获取、常用方法、字典视图获取、遍历及特点。通过实例展示了字典的创建、增删改查操作,以及如何通过keys、values和items获取字典的不同视图。同时,讲解了字典生成式,用于快速创建字典。最后,强调了字典中键的唯一性和无序性,以及键必须为不可变对象的要求。
摘要由CSDN通过智能技术生成

一、字典概述

可变序列:目前包括字典、列表
不可变序列:目前包括整数,字符串
区别在于可变序列可以进行增、删、查、改操作,而不可变序列不可以进行

概述:
字典是由键值对组成的,字典是无序的排列方式,他不是根据你输入键的前后顺序来存储他,而是根据键的哈希值来存储,由此字典的键必须是一个不可变序列,而且键不可以重复。
在这里插入图片描述
首先先由哈希函数计算键从而得到不同键的索引,然后根据键的索引排序键,键中保存的是值的地址,从而达到引用键而找到值的效果
在这里插入图片描述

二、字典创建

在这里插入图片描述
举例:

#第一钟创建
dict1={'张三':100,'李四':98,'王五':120}
print(dict1)
print(type(dict1))

#第二种创建(注:这里面的key不需要带"引起"直接就可以使用)
dict2=dict(name='20',age=18)
print(dict2)
print(type(dict2))

#空字典
dict3={}
dict3=dict()

结果如下:
在这里插入图片描述

三、字典的获取

在这里插入图片描述
1、使用[]获取,[]里面是键值

score={'tom':58,'linda':62,'jack':98}
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
print(score.get('alice',56))        #输出56,如果查找不到就会默认输出键后面的值

四、字典的常用的常用方法(增删改)

在这里插入图片描述
举例:
在这里插入图片描述
结果如下:
在这里插入图片描述
在这里插入图片描述
五、字典视图获取
在这里插入图片描述
举例:

dict1={'张三':100,'李四':98,'王五':120}
#获取字典的键
keys=dict1.keys()
print(keys,type(keys))
print(list(keys)) #将keys转换列表

#获取字典的值
values=dict1.values()
print(values,type(values))
print(list(values))

#获取字典的键值对
k_v=dict1.items()
print(k_v,type(k_v))
print(list(k_v)) #转换后的键值对列表中的元素是元组

结果如下:
在这里插入图片描述

五、字典的遍历

举例:

dict1={'张三':100,'李四':98,'王五':120}
for item in dict1:
    print(item,dict1[item],dict1.get(item))

结果如下:
在这里插入图片描述

六、字典特点:

1、字典中键值对是一一对应的,其中,键是不可以重复的,而值是可以重复的(键重复时会被覆盖)
2、字典中的键值对是无序的
3、字典中的键必须是不可变对象,使用可变对象会报错
4、字典是一种用空间换时间的数据结构
5、字典可根据需要动态伸缩

七、字典生成式

使用内置函数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)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值