Python重要数据结构之字典(通俗易懂)

1. 字典简介

字典是另一种可变容器模型,且可存储任意类型对象。
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

在这里插入图片描述
·字典类型就像它的名字一样,可以像字典一样去查找。

·字典的元素是成对出现的,每个元素都是由“:”和键值对(“:”左边的称为键或者key,“:”右边的称为值或·者value)构成。

·元素和元素之间用","隔开,整个字典用“{ }”包围。

·字典的值必须是唯一的不重复的,如果是空字典,直接用“{}”表示。
在这里插入图片描述
执行结果如下:
在这里插入图片描述

2. 字典的特性

不支持+,*,index,slice(因为字典无序不重复)

支持in和not in

思考一下,下面这个返回值分别是True还是False

在这里插入图片描述

执行结果如下:
在这里插入图片描述
要注意的是,in 判断的是是否为所有key值的成员

3. 字典的常用方法

(1)查看

查看所有: keys,values,items
查看局部:d[key],d.get(key),d.get(key,default-value)

 import idlelib.editor
english = {
    'we':'我们',
    'world':'世界',
    'company':'公司',
}
print(english.keys())        ##查看字典所有的key值
print(english.values())      ##查看字典所有的value值
print(english.items())       ##查看字典所有的key-value值
print(english['world'])      ##查看key为world对应的value值
print(english.get('game'))   ##查看key对应的value值,如果存在就返回,不存在就返回None
print(english.get('game','游戏'))  ##查看key对应的value值,如果存在就返回,不存在就返回设置的默认值

执行结果如下:

在这里插入图片描述

注意:如果查看key对应的value值不存在,则会报错。

(2)添加和修改

d = { 'name':'westos','age':'18'}
d['city'] = '西安'    		 ##key不存在就添加
print(d)
d['city'] = '北京' 	  		 ##key存在就修改value值
print(d)
d.setdefault('game','LOL')   ##key不存在就添加
print(d)
d.setdefault('age','22')     ##key存在就do nothing
print(d)

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

(3)删除

d = { 'name':'westos','age':'18'}
d.pop('name')   ## pop函数
print(d)
a = { 'name':'westos','age':'18'}
del a['age']    ##del关键字
print(a)

4. 遍历字典

(1)默认情况下,字典只会遍历key值

d = {'name':'westos','age':'18','city':'西安'}
for item in d:
    print(item)

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

(2)遍历字典的key-value

d = {'name':'westos','age':'18','city':'西安'}
for item in d.items():
    print(item)

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

(3)遍历字典中的key和value(特别重要)

d = {'name':'westos','age':'18','city':'西安'}
for key,value in d.items():
    print(f'key={key},value={value}')

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

5. defaultdict默认字典

在这里插入图片描述

在这里插入图片描述
默认字典,设置默认value

执行结果如下:

from collections import defaultdict
d=defaultdict(list)
d['a'].append(1)
d['a'].append(2)
d['b'].append(4)
print(d)
d=defaultdict(set)
d['a'].add(1)
d['a'].add(2)
d['b'].add(4)
print(d)

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值