Python数据类型——字典

Python数据类型——字典

(一)字典的定义

字典的每个值都具备自己独有的名称即键( key ),每个 key 都有对应的值( value ),字典中的 key 和 value 必须成对出现 。如图,name对应的值就是Alan。在这里插入图片描述
要注意,字典的key是唯一的,但是value可以有多个一样的,也就是不同的键可以对应相同的键值。

(二)字典的访问

1、通过键可以获取值,请看代码在这里插入图片描述
运行结果如下:在这里插入图片描述
要注意,通过key来访问value的时候,如果key是存在的,那么会返回对应的value值,如果不存在,那么会显示错误。
2、通过get的方法获取键值
格式: dictA.get(key)
这种方法在key不存在的时候会返回None,而不会像第一种方法那样报错。

(三)字典的遍历

获取所有键值对函数:dictA.items() 可以通过for循环遍历

for key,value in dictA.items()
   print(‘%r==%r’%(key,value) 

请看如下代码
在这里插入图片描述
运行结果如下在这里插入图片描述

(四)字典常用函数

1、获取所有的键的函数: dictA.keys()

dictA={'name': 'Alan', 'age': '18', 'school': 'SCUT'}
print(dictA.keys())

获取所有的值的函数: dictA.values()

dictA={'name': 'Alan', 'age': '18', 'school': 'SCUT'}
print(dictA.values())

2、删除函数
dictA.pop(key) # 删除对应键值

dictA.clear() # 清空 dictA

del dictA[ key ] # 删除对应键值

del dictA # 删除 dictA

dictA = {'name': 'Alan', 'age': 18, 'listA': [10, 20, 30], }
dictA.pop('name')  # 删除name 对应的值
print(dictA)  # 输出结果 无name
del dictA ['age']  # 删除单个键值
print(dictA )  # 输出结果无age
dictA .clear()  # 清空dictA的键值,不会删除引用dictA
print(dictA)  # dictA还能访问
del dictA  # 删除字典dictA的引用
print(dictA)  # 字典dictA无法访问,出现异常

运行结果如下
在这里插入图片描述
3、增添或修改函数
dict[key] = value 增添或修改字典值,若是字典中不存在key,则是增添,若是字典中存在key,则是修改。
在字典中,我们使用update函数对字典值进行增添或者修改

dictA = {'name': 'Alan', 'age': 18, 'listA': [10, 20, 30], }
dictA['name'] = 'wangkkklll'  #更新name中的值
print(dictA)
dictA['school'] = 'SCUT'  #dictA中没有school,则增添school
print(dictA)
dictB={'address':'guangzhou','listB':[1,2,3]}
dictA.update(dictB) #根据dictB批量更新dictA
print(dictA)

运行结果如下
在这里插入图片描述
4、对字典进行排序
使用sorted()函数,分为两种排序(按照key排序和按照value排序)
按照key进行排序 sorted(dictA.items(),key=lambda d:d[0])
按照value进行排序 sorted(dictA.items(),value=lambda d:d[1])

dictA = {'name': 'Alan', 'age': 18, 'listA': [10, 20, 30], }
sorted(dictA.items(), key=lambda d: d[0])
print('按照key排序:{}'.format(dictA))
sorted(dictA.items(), value=lambda d: d[1])
print('按照value排序:{}'.format(dictA))

运行结果如下
在这里插入图片描述
我们可以看到,程序将按照key排序的运行结果显示出来了,但是按照value的结果却报错了,这是因为键值是不同类型的数据,它们不能进行排序比较。

5、计算键的总数
len(dictA)

dictA = {'name': 'Alan', 'age': 18, 'listA': [10, 20, 30], }
print(len(dictA))

(五)小结

1、字典与列表的最大区别是字典强调键值对,键值一一对应,由于字典不能进行切片操作,也就是没有下标这种概念,因此,在字典中键值对的存放顺序并不重要,重要的是key和value必须一一对应。
2、字典的key是不能改变的,因此可以用数字、字符串、元组来充当,而不能使用列表。
3、无论数据量有多大,键值访问速度均相等。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值