Python 程序设计讲义(49):组合数据类型——字典类型:字典的方法
Python 程序设计讲义(49):组合数据类型——字典类型:字典的方法
目录
- Python 程序设计讲义(49):组合数据类型——字典类型:字典的方法
- 一、使用序列生成新字典:使用dict 的fromkeys()方法
- 二、获取字典中所有的key:使用keys() 方法
- 三、获取字典中所有键对应的 value:使用values() 方法
- 四、返回字典中所有的键值对:使用items()方法
- 五、获取指定的键对应的值
- 1、使用用`get()`方法获取指定键对应的值
- 2、使用`setdefault()`方法获取指定键对应的值
- 六、字典的合并:使用update()方法
- 七、修改某个元素的值、为字典添加新元素:使用d[key]=value的方法
- 八、删除元素:使用del语句或pop()、popitem()方法
- 1、使用`del`语句删除指定的元素
- 2、使用`pop()`方法删除指定的元素
- 3、使用`popitem()`方法删除字典中的最后一个元素
- 九、清空字典:使用clear()方法
- 十、删除字典:使用 del 语句
一、使用序列生成新字典:使用dict 的fromkeys()方法
使用fromkeys()
方法可以使用一个序列建立字典。序列中的元素作为字典中的键,每个键对应相同的值。
fromkeys()
方法属于dict
类型,而不是字典名。语法格式如下:
dict.fromkeys(iterable, value)
说明:
value可以省略,如果省略value,则使用None为字典的值。
例如:
l1=[1,2,3,4,5]
d1=dict.fromkeys(l1,"请设置民族")
print(d1)程序的运行结果为:
{1: '请设置民族', 2: '请设置民族', 3: '请设置民族', 4: '请设置民族', 5: '请设置民族'}
fromkeys()
方法如果省略value
,则所有的value
被设置为None
。
例如:
l1=[1,2,3,4,5]
d1=dict.fromkeys(l1)
print(d1)程序的运行结果为:
{1: None, 2: None, 3: None, 4: None, 5: None}
二、获取字典中所有的key:使用keys() 方法
如果需要获取字典中所有的键,可以使用keys()
方法。以列表的形式返回字典中所有的键。
keys()
方法的语法格式如下:
d_name.keys()
例如:
l1=[1,2,3,4,5]
l2=["汉族","回族","苗族","蒙古族","朝鲜族"]
d1=dict(zip(l1,l2))
l1=d1.keys()
print(l1)程序的运行结果为:
dict_keys([1, 2, 3, 4, 5])
三、获取字典中所有键对应的 value:使用values() 方法
如果需要返回字典中所有键对应的值,可以使用values()
方法。以列表的形式返回字典中所有键对应的值。
values()
方法的语法格式如下:
d_name.values()
例如:
l1=[1,2,3,4,5]
l2=["汉族","回族","苗族","蒙古族","朝鲜族"]
d1=dict(zip(l1,l2))
l1=d1.values()
print(l1)程序的运行结果为:
dict_values(['汉族', '回族', '苗族', '蒙古族', '朝鲜族'])
四、返回字典中所有的键值对:使用items()方法
如果需要返回字典中所有的键值对,可以使用items()
方法。
items()
方法将字典中的每个键值对作为元素,组成一个元组。所有的键值对对应的元组组成一个列表作为items()
方法的返回值。
values()
方法的语法格式如下:
d_name.items()
例如:
l1=[1,2,3,4,5]
l2=["汉族","回族","苗族","蒙古族","朝鲜族"]
d1=dict(zip(l1,l2))
l3=d1.items()
print(l3)程序的运行结果为:
dict_items([(1, '汉族'), (2, '回族'), (3, '苗族'), (4, '蒙古族'), (5, '朝鲜族')])
使用for...in
循环可以遍历字典。
例如:
l1=[1,2,3,4,5]
l2=["汉族","回族","苗族","蒙古族","朝鲜族"]
d1=dict(zip(l1,l2))
for item in d1.items():print(item)程序的运行结果为:
(1, '汉族')
(2, '回族')
(3, '苗族')
(4, '蒙古族')
(5, '朝鲜族')
遍历字典中的键和值,代码如下:
l1=[1,2,3,4,5]
l2=["汉族","回族","苗族","蒙古族","朝鲜族"]
d1=dict(zip(l1,l2))
for key,value in d1.items():print(key, value)程序的运行结果为:
1 汉族
2 回族
3 苗族
4 蒙古族
5 朝鲜族
五、获取指定的键对应的值
可以使用d_name[key]
获取指定的键对应的值,也可使用get()
方法与setdefault()
方法获取指定键对应的值。
1、使用用get()
方法获取指定键对应的值
如果指定的键不存在,则返回None
。
语法格式如下:
d_name.get(key)
例如:
d1={1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
print(d1[2])
print(d1.get(3))
print(d1.get(6)) #key为6不存在,返回None程序的运行结果为:
回族
苗族
None
2、使用setdefault()
方法获取指定键对应的值
与get()
方法不同的是,使用setdefault()
方法获取指定键对应的值时,如果指定的键不存在,则为字典添加键,并指定对应的值。
如法格式如下:
d_name.setdefault(key,value)
说明:
(1)key表示键。
(2)value表示键对应的值。只有当字典中不存在对应的key时,value才生效。
例如:
(1)不指定value
。
代码如下:
d1={1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
print(d1[2])
print(d1.setdefault(3))
print(d1.setdefault(6)) #key为6不存在,value为None,并且把键值对6:value添加到字典中
print(d1)程序的运行结果为:
回族
苗族
None
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族', 6: None}
(2)指定value
。
代码如下:
d1={1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
print(d1[2])
print(d1.setdefault(3,'布依族')) #显示3对应的民族:苗族
#key为6不存在,value为None,并且把键值对6:'布依族'添加到字典中
print(d1.setdefault(6,'布依族'))
print(d1)程序的运行结果为:
回族
苗族
布依族
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族', 6: '布依族'}
六、字典的合并:使用update()方法
字典的合并是指将一个字典的键值对添加到另一个字典中。使用update()
方法可以完成字典的合并。
update()
方法的语法格式如下:
d_name.update(d_name2)
例如:
d1={1: '汉族', 2: '回族', 3: '苗族'}
d2={4: '蒙古族', 5: '朝鲜族'}
d1.update(d2)
print(d1)程序的运行结果为:
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
七、修改某个元素的值、为字典添加新元素:使用d[key]=value的方法
字典是一个可变序列,用户可以对字典中的键值对进行添加和修改。
语法格式如下:
d_name[key]=value
说明:
(1)如果字典中存在指定的key,则修改对应的值。
(2)如果字典中存在指定的key,则添加一个新元素,键值对就是指定的key和value值。
例如:
(1)修改某个元素的值
代码如下:
d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
d1[3]='藏族' #key=3存在,则修改3对应的值
print(d1)程序的运行结果为:
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
{1: '汉族', 2: '回族', 3: '藏族', 4: '蒙古族', 5: '朝鲜族'}
(2)添加新元素
d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
d1[7]='藏族' #key=7存在,则添加一个新元素,键值对为:7:'藏族'
print(d1)程序的运行结果为:
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族', 7: '藏族'}
八、删除元素:使用del语句或pop()、popitem()方法
删除字典中的元素有三种方法:
1、使用del
语句删除指定的元素
使用del
语句删除字典中指定的元素。
语法格式如下:
del d_name[key]
例如:
d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
del d1[3] #删除key=3对应的元素
print(d1)程序的运行结果为:
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
{1: '汉族', 2: '回族', 4: '蒙古族', 5: '朝鲜族'}
2、使用pop()
方法删除指定的元素
使用pop()
方法可以删除字典中指定键的键值对,并返回该键对应的值。
pop()
方法的语法格式如下:
d_name.pop[key]
例如:
d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
x=d1.pop(3)
print(x)
print(d1)程序的运行结果为:
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
苗族
{1: '汉族', 2: '回族', 4: '蒙古族', 5: '朝鲜族'}
3、使用popitem()
方法删除字典中的最后一个元素
使用popitem()
方法可以删除字典中的最后一个元素,并以元组的形式返回。
popitem()
方法的语法格式如下:
d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
t1=d1.popitem()
print(t1)
print(d1)
t1=d1.popitem()
print(t1)
print(d1)程序的运行结果为:
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
(5, '朝鲜族')
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族'}
(4, '蒙古族')
{1: '汉族', 2: '回族', 3: '苗族'}
九、清空字典:使用clear()方法
使用字典的clear()
方法可以删除字典中所有的元素。使用字典的clear()
方法清空字典后,字典还在,只是变成了空字典。
例如:
d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
d1.clear()
print(d1)程序的运行结果为:
{1: '汉族', 2: '回族', 3: '苗族', 4: '蒙古族', 5: '朝鲜族'}
{}
十、删除字典:使用 del 语句
如果一个字典不再使用,可以使用del
语句删除该字典。
删除字典的语法格式如下:
del d_name
例如:
d1={1: '汉族', 2: '回族', 3: '苗族',4: '蒙古族', 5: '朝鲜族'}
print(d1)
del d1
print(d1) #字典d1已经被删除,执行该命令报以下错误程序的运行结果为:
Traceback (most recent call last):File "C:\Users\wgx58\PycharmProjects\PythonProject\hello.py", line 4, in <module>print(d1)^^
NameError: name 'd1' is not defined