一.字典的基础知识
1.字典的创建
2.字典中的键与值
二.字典方法:增删改查
1.增:setdefault(),update(),通过键名添加
2.删:pop(),popitem(),clear()
3.改:通过键名修改,update()
4.查:get(),keys(),values(),items(),通过键名查看
字典的基础知识
1.字典的创建
通过字典名={"键":"值","键":"值"},进行创建,每对键值对使用","隔开,键与值之间使用":"
dict1={"姓名":"李二牛","年龄":19}
print(dict1)
print(type(dict1))
{'姓名': '李二牛', '年龄': 19}
<class 'dict'>
特殊的:dict函数可以接受一个可迭代对象(如列表中的列表元组,元组中的元组列表,等可迭代对象,其中每个内部可迭代对象都包含两个值,分别为建和值,但是不能接受两个单独的列表作为参数)
n=dict(((1,2),(3,4)))
m=dict([[1,2],[3,4]])
l=dict(([1,2],[3,4]))
p=dict([(1,2),(3,4)])
print(n)
print(m)
print(l)
print(p)
{1: 2, 3: 4}
{1: 2, 3: 4}
{1: 2, 3: 4}
{1: 2, 3: 4}
2.字典中的键与值
字典名={"键":"值"},其中键可以是任何的不可变类型(数值,字符串,元组),值可以是任意类型
dict1={('姓名',"1"):'李二牛','年龄':19,19:['年龄'],'字典':{'姓名':'王艳兵','年龄':19,'地点':'铁拳团'}}
print(type(dict1))
print(dict1)
<class 'dict'>
{('姓名', '1'): '李二牛', '年龄': 19, 19: ['年龄'], '字典': {'姓名': '王艳兵', '年龄': 19, '地点': '铁拳团'}}
一.增:增加元素
方法一:setdefault()
语法格式:字典名.setdefault(键,值)
setdefault(键,值)一次只能加一对,字典中当该键名存在时不会改变原值,当键名不存在时会加上这一对键值对,当只有键名没有值时,默认值为None
该例子中,由于键"姓名"有对应的值"李二牛",在使用message.setdefault("姓名","何晨光")时不会对字典进行改变,而字典中没有"年龄"这个键,所以会在字典中加上这个键值对,由于键"时间"没有值,所以在字典中键"时间"的值为None
message = {'姓名': '李二牛', '姓名1': '王艳兵', '地点': '铁拳团'}
message.setdefault('姓名', '何晨光')
message.setdefault('年龄', 19)
message.setdefault("时间")
print(message)
{'姓名': '李二牛', '姓名1': '王艳兵', '地点': '铁拳团', '年龄': 19, '时间': None}
方法二.update()
语法格式:字典名.update()
update({键:值,键:值.....})一次可以同时增加多个键值对,字典中当该键名存在时会改变原值,当键名不存在时会加上这一对键值对.
该例子中字典message键"姓名"值为"李二牛",使用update()后键"姓名"更新为"何晨光",由于字典message中没有键"爱好"和"军衔",所以会加上.
通过上面关于setdefault()的用法,键"特点"没有指定值,所以默认为None,当使用update()方法后,键"特点"值由None变为"未知".
message={'姓名': '李二牛', '姓名1': '王艳兵'}
message.update({'姓名':'何晨光','爱好':'学习','军衔':"中尉"})
message.setdefault("特点")
print(message)
message.update({'特点':'未知'}) #使用update可以改变none的值
print(message)
{'姓名': '何晨光', '姓名1': '王艳兵', '爱好': '学习', '军衔': '中尉', '特点': None}
{'姓名': '何晨光', '姓名1': '王艳兵', '爱好': '学习', '军衔': '中尉', '特点': '未知'}
方法三:使用键名添加
语法格式:字典名[键]=新值
当字典中不存在该键时,会添加该键值对,当键名存在时,会修改值为新值
在该例子中,由于不存在"特点"这一个键,所以会加上"特点":"锻炼"这一个键值对
message={"姓名":"李二牛","地点":"铁拳团"}
message["特点"]="锻炼"
print(message)
{'姓名': '李二牛', '地点': '铁拳团', '特点': '锻炼'}
二.删:删除元素
方法一:pop()
语法格式:字典名.pop(键)
pop()
方法用于从字典中移除指定的键值对,并返回该键对应的值。如果指定的键不存在于字典中,则pop()
方法会抛出一个KeyError
异常。不过可以提供一个默认值作为第二个参数,如果指定的键不存在,则返回这个默认值,而不是抛出异常。
该例子中先使用pop()方法删除"姓名"键值对,返回值为李二牛,当键"爱好"不存在时,返回第二个参数"查无此信息"
message={'姓名': '李二牛', '姓名1': '王艳兵'}
data=message.pop('姓名')
data1=message.pop('爱好',"查无此信息")
print(data)
print(data1)
print(message)
李二牛
查无此信息
{'姓名1': '王艳兵'}
如下当键"特点"不存在时,会出报错 KeyError
message={'姓名': '李二牛', '姓名1': '王艳兵'}
message.pop("特点")
print(message)
KeyError: '特点'
方法二:popitem()
popitem()
方法用于从字典中移除并返回一个键值对(以元组形式 (key, value)
)。与 pop()
方法不同的是,popitem()
方法默认移除并返回字典中的最后一个(即最近添加的)键值对.
该例子中使用popitem()删除最后一个键值对,返回值为元组('姓名1','王艳兵')
message={'姓名': '李二牛', '姓名1': '王艳兵'}
data=message.popitem()
print(data)
print(message)
('姓名1', '王艳兵')
{'姓名': '李二牛'}
当列表为空时使用popitem()方法时会报错KeyError
message={}
message.popitem()
print(message)
KeyError: 'popitem(): dictionary is empty'
方法三:clear()
语法格式:字典名.clear()
clear()方法用于清空列表
message={'姓名': '李二牛', '姓名1': '王艳兵'}
message.clear()
print(message)
{}
三.改:修改元素
方法一:通过键名修改
语法格式:字典名[键名]=新值
一次仅能修改一个,与通过键名添加元素的语法一样,不同的是当键名存在时,将原数据改为新值
在该例子中由于键"姓名"存在,所以会修改原值"李二牛"变为"何晨光"
message={"姓名":"李二牛","地点":"铁拳团"}
message["姓名"]="何晨光"
print(message)
{'姓名': '何晨光', '地点': '铁拳团'}
方法二:update()
语法格式:字典名.update()
update()方法一次可以修改多个,既当键名存在时,会改变原有的值
在该例子中,由于键"姓名"和"姓名1"都存在,所以其对应的数值都会发生改变.
message={'姓名': '李二牛', '姓名1': '王艳兵'}
message.update({'姓名':'何晨光','姓名1':'龚箭'})
print(message)
{'姓名': '何晨光', '姓名1': '龚箭'}
四.查:查看元素
方法一:get()
语法格式:字典名.get()
get(键,设置值),用于获取键所对应的值,若没有该键,则返回设置值(可以设置,也可以不设置,不设置是当键不存在,则会返回None,而不会报错)
在该例子中,由于字典中有'年龄'这个键,所以会返回年龄对应的值20,"特点"这个键不存在,所以会输出设置值"若没有特点则输出这句话"
dict1={"姓名":"何晨光","年龄":20}
print(dict1.get('年龄',"若没有年龄则输出这句话"))
print(dict1.get('特点','若没有特点则输出这句话'))
print(dict1.get("te"))
20
若没有特点则输出这句话
None
方法二:keys()
语法格式:字典名.keys()
keys()用于获取字典中所有的键(key)组成的视图对象(view object),这个视图对象是一个集合(set-like)对象,不能使用索引功能,但是可以将其转变为列表(元组)类型
dict1={"姓名":"何晨光","年龄":20}
print(dict1.keys())
print(list(dict1.keys()))
dict_keys(['姓名', '年龄'])
['姓名', '年龄']
方法三:values()
语法格式:字典名.values()
values()用于获取字典中所有的值(values)组成的视图对象(view object),这个视图对象是一个集合(set-like)对象,不能使用索引功能,但是可以将其转变为列表(元组)类型
dict1={"姓名":"何晨光","年龄":20}
print(dict1.values())
print(tuple(dict1.values()))
dict_values(['何晨光', 20])
('何晨光', 20)
方法四:items()
语法格式:字典名.items()
于获取字典中所有的(键,值)对组成的视图对象(view object)。这个视图对象允许你迭代字典中的每个项,其中每个项都是一个包含键和值的元组(tuple)
dict1={"姓名":"何晨光","年龄":20}
print(dict1.items())
print(list(dict1.items()))
dict_items([('姓名', '何晨光'), ('年龄', 20)])
[('姓名', '何晨光'), ('年龄', 20)]
方法五:通过键名查看
语法格式:字典名[键]
通过键名获取对应的值,当键名不存在时,会返回KeyError
dict1={"姓名":"何晨光","年龄":20}
print(dict1["姓名"])
print(dict1["23"])
何晨光
KeyError: '23'
标签:dict1,改查,何晨光,print,姓名,增删,message,字典
From: https://blog.csdn.net/2303_81133811/article/details/142466170