字典的相关操作


前言

一、字典的创建

1.1 直接使用{}

s1 = {'name':'zhangsan','age' : 26, 'city':'beijing'}
print(s1)

{'name': 'zhangsan', 'age': 26, 'city': 'beijing'}

1.2 使用内置函数dict()

s2 = dict(name='zhangsan',age= 26, city='beijing')
print(s2)
{'name': 'zhangsan', 'age': 26, 'city': 'beijing'}

注意:1.1与1.2两者之间一个是 :,一个是 =

1.3 使用zip()函数

keys = ['name','age','city']
values = ['zhangsan',23,'beijing']
s3 = dict(zip(keys,values))
print(s3)

{'name': 'zhangsan', 'age': 23, 'city': 'beijing'}

1.4 使用items()方法

s5 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
items = s5.items()
dict = dict(items)
print(dict)

{'name': 'zhangsan', 'age': 25, 'city': 'beijing'}

二、字典取值

1.直接使用[ ],如果字典中不存在指定的key,则抛出异常keyError

代码如下(示例):

s5 = {'name':'zhangsan','age':20,'gender':'male'}
print(s5['name']) # zhangsan

s5 = {'name':'zhangsan','age':20,'gender':'male'}
print(s5['city']) # keyError

2.使用get (),如果字典中不存在指定的key,并不会抛出异常,而是返回none,但也可以通过设置参数来指定一个默认的value,以便于返回可以不存在时的提示

代码如下(示例):

s5 = {'name':'zhangsan','age':20,'gender':'male'}
print(s5.get('name')) #zhangsan

s5 = {'name':'zhangsan','age':20,'gender':'male'}
print(s5.get('city')) # None

s5 = {'name':'zhangsan','age':20,'gender':'male'}
print(s5.get('city','不存在')) # 不存在

三、其它操作

3.1 字典的更新:updata()

3.1.1 当update() 给定的键值对,在原字典不存在时,就会增加字典元素

s6 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
dict2 = {'Name':'lisi', 'Age':26, 'City':'shanghai'}
s6.update(dict2)
print(s6) 

{'name': 'zhangsan', 'age': 25, 'city': 'beijing', 'Name': 'lisi', 'Age': 26, 'City': 'shanghai'}

3.1.2当update() 给定的键值对,在原字典存在时,就会修改字典元素

s7 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
dict2 = {'name':'lisi', 'age':26, 'city':'shanghai'}
s7.update(dict2)
print(s7) # {'name':'lisi', 'age':26, 'city':'shanghai'}

3.2 字典的遍历

3.2.1 字典推导式遍历

s8 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
dict2 = {k:v for k,v in s8.items() if k!='name'}
print(dict2) # {'age': 25, 'city': 'beijing'}

3.2.2 字典的普通遍历

s9 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
for key in s9:
    print(key, dict[key]) # name zhangsan  age 25  city beijing

3.2.3 字典的键值对遍历

s10 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
for key, value in s10.items():
    print(key, value) # name zhangsan  age 25  city beijing

3.3 字典元素的增加

s11 = {"a": 1, "b": 2, "c": 3}
s11["d"] = 4
print(s11) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

3.4 字典元素的修改

s12 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
s12['name'] = 'lisi'
print(s12) # {'name': 'lisi', 'age': 25, 'city': 'beijing'}

3.5 字典元素的删除

3.5.1 使用del命令删除指定元素

当字典中的某个元素不需要时,可以使用del命令将其删除。

3.5.1.1 键存在
s13 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
del s13['name']
print(s13) # {'age':25, 'city':'beijing'}
3.5.1.2 键不存在

当删除一个不存在的键时,将抛出 KeyError 的异常。

s14 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
del s14['height']
print(s14) #  KeyError: 'height'

为了防止报错,需要修改代码:

s14 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
if 'height' in s14:
    del s14['height']
else:
    print('删除的键不在字典中')
print(s14)

删除的键不在字典中
{'name': 'zhangsan', 'age': 25, 'city': 'beijing'}

3.5.2 使用pop()命令删除指定元素

pop()方法和del命令类似,都是指定元素的键来删除该元素, 注意pop后面是(),不是[ ]。

s15 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
s15.pop('name')
print(s15) # {'age': 25, 'city': 'beijing'}

3.5.3 使用popitem() 方法删除字典中最后一个键值对。

s16 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
s16.popitem()
print(s16) # {'name': 'zhangsan', 'age': 25}

3.5.4 使用clear()方法清空字典元素

s17 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
s17.clear()
print(s17) # {}

3.6 字典键值对的数量

s18 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
print(len(s18)) # 3

3.7 字典中是否包含某值,某键,某键值对,或者是否为空

3.7.1 字典中是否包含某键

s19 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
if 'height' in s19:
    print('s19 contains')
else:
    print('不存在') # 不存在

3.7.2 字典中是否包含某值

s20 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
if 90 in s20.values():
    print('dict contains')
else:
    print('不存在') # 不存在

3.7.3 字典中是否包含某键值对

s21 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
if ('name', 'zhangsan') in s21.items():
    print('dict contains name: zhangsan')
else:
    print('不存在') # dict contains name: zhangsan

3.7.4 字典是否是空值

s22 = {'name':'zhangsan', 'age':25, 'city':'beijing'}
if not s22:
    print('dict is empty')
else:
    print('dict is not empty') # dict is not empty
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值