Python字典(dict)的操作方法汇总(约18种操作方法),并附示例代码
Posted 昊虹图像算法
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python字典(dict)的操作方法汇总(约18种操作方法),并附示例代码相关的知识,希望对你有一定的参考价值。
声明:博主(昊虹图像算法)写这篇博文时,用的Python的版本号为3.9.10。
字典(dict)的格式如下:
dict1 = key1 : value1, key2 : value2, key3 : value3
从上面的格式我们可以看出:
字典的每个键值 key=>value 对用冒号分割,每个对之间用逗号分割,整个字典包括在花括号 中。
另外字典要求键必须是唯一的,但值则不必。
目录
- 01-字典的创建
- 02-字典值的访问
- 03-更新字典某个键的值、新增键值
- 04-用del语句删除字典中的键值
- 05-用del语句删除整个字典
- 06-用方法clear()清空字典
- 07-用函数len()统计字典键值对的个数
- 06-用函数str()将字典字符串化
- 07-使用方法copy()实现字典的深拷贝
- 08-使用“=”实现字典的浅拷贝
- 09-使用“in”判断某键是否在字典里
- 10-使用方法items()获得字典键和值的视图对象
- 11-使用方法keys() 获得字典键的视图对象
- 12-使用方法values()获得字典键的值的视图对象
- 13-1-使用方法get()返回某键的值
- 13-2-使用方法setdefault()返回某键的值(如果键不存在,则自动创建)
- 14-使用方法update()将一个字典的键值添加到另一个字典中
- 15-使用方法pop()删除某对键值,并返回键的值
- 16-使用方法popitem() 删除最后插入的键值,并返回键及其值
- 17-键在使用时需要注意的两点
01-字典的创建
# 创建有内容的字典
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
# 方法一创建空字典
dict2 =
# 方法二创建空字典
dict3 = dict()
运行结果如下:
01-附1-利用方法fromkeys()配合元组快速生成多键值字典
语法如下:
dict.fromkeys(keys, value)
keys —必需。指定新字典键的可迭代对象。
value—可选。所有键的值。默认值是 None。
第一个示例代码如下:
x = ('key1', 'key2', 'key3')
y = 0
dict1 = dict.fromkeys(x, y)
运行结果如下:
第二个示例代码:
x = ('key1', 'key2', 'key3')
y = (61, 62, 63)
dict1 = dict.fromkeys(x, y)
运行结果如下:
注意:key1的键值并不是61,而是元组(61, 62, 63),这 一点要注意。
第三个示例代码:
x = ('key1', 'key2', 'key3')
dict1 = dict.fromkeys(x)
运行结果如下:
02-字典值的访问
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
str1 = dict1['name']
value1 = dict1[123]
运行结果如下:
03-更新字典某个键的值、新增键值
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
k = 1
dict1['name'] = 'wanghong' # 更新键name的值
dict1['height'] = 167 # 增加键值
运行结果如下:
提问:为什么中间有插一句语句"k = 1",答案见下面这篇博文:
https://blog.csdn.net/wenhao_ir/article/details/125416514
04-用del语句删除字典中的键值
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
del dict1['name']
运行结果如下:
05-用del语句删除整个字典
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
dict2 = 'name': 'wanghong', 'likes': 'sing', 999: 704
del dict1
运行结果如下:
06-用方法clear()清空字典
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
dict1.clear()
运行结果如下:
07-用函数len()统计字典键值对的个数
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
len1 = len(dict1)
运行结果如下:
06-用函数str()将字典字符串化
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
str1 = str(dict1)
print(str1)
运行结果如下:
07-使用方法copy()实现字典的深拷贝
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
dict2 = dict1.copy()
dict1['name'] = 'zhangsan'
从运行结果我们可以看出,方法copy()的确实现的是深拷贝,改变dict1的键值并没有影响到dict2的值。
08-使用“=”实现字典的浅拷贝
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
dict2 = dict1
dict1['name'] = 'zhangsan'
运行结果如下:
从上面的运行结果可以看出,dict1键值的修改影响了dict2的键值,说明二者是共用内存空间的。
09-使用“in”判断某键是否在字典里
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
bool1 = 'name' in dict1
bool2 = 'weight' in dict1
运行结果如下:
10-使用方法items()获得字典键和值的视图对象
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
dict1_items = dict1.items()
print(dict1_items)
运行结果如下:
可见,这个视图对象就是把字典对象换了一种形式表示。
比如原来的键值形式为:
'name': 'suwenhao'
转换为视图对象(dict_items)后为下面这样的形式:
('name', 'suwenhao')
值得注意的是,原键值必变,对应的视图对象也会跟着改变,看一个例子:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
dict1_items = dict1.items()
dict1['name'] = 'zhangsan'
print(dict1_items)
运行结果如下图所示:
视图对象可以用函数list()转换为列表类型,如下面的例子:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
dict1_items = dict1.items()
list1 = list(dict1_items)
运行结果如下:
从上面的结果可以看出,转换为列表对象后,每一个键值是一个元组(tuple)。
关于视图对象,注意,我们不能对视图对象进行任何的修改,因为字典的视图对象都是只读的。
11-使用方法keys() 获得字典键的视图对象
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
dict1_keys = dict1.keys()
list1 = list(dict1_keys)
运行结果如下:
相关知识和说明请参考“10-使用方法items()获得字典键和值的视图对象”
12-使用方法values()获得字典键的值的视图对象
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
dict1_values = dict1.values()
list1 = list(dict1_values)
运行结果如下:
相关知识和说明请参考“10-使用方法items()获得字典键和值的视图对象”
13-1-使用方法get()返回某键的值
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
str1 = dict1.get('name')
运行结果如下:
13-2-使用方法setdefault()返回某键的值(如果键不存在,则自动创建)
方法 setdefault()的语法如下:
dict.setdefault(key, default=None)
参数:
key – 查找的键值。
default – 键不存在时,设置的默认键值。
返回值:
如果 key 在 字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
str1 = dict1.setdefault('name', 'zhangsan')
str2 = dict1.setdefault('likes', None)
temp1 = dict1.setdefault('weight', None)
运行结果如下:
结果分析:
由于键’name’是存在的,所以语句:
str1 = dict1.setdefault('name', 'zhangsan')
并不会改变其键值,并且返回了其键值‘suwenhao’
由于键’weight’是不存在的,所以在字典dict1中新增了键’weight’,其值设为None。
14-使用方法update()将一个字典的键值添加到另一个字典中
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
dict2 = 'weight': 30
dict1.update(dict2)
运行结果如下:
15-使用方法pop()删除某对键值,并返回键的值
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
temp1 = dict1.pop('name')
运行结果如下:
16-使用方法popitem() 删除最后插入的键值,并返回键及其值
最后插入的键值通常就是末尾键值嘛。
示例代码如下:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456
temp1 = dict1.popitem()
运行结果如下:
17-键在使用时需要注意的两点
1、不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
dict1 = 'name': 'suwenhao', 'likes': 'reading', 123: 456, 'name': 'zhangsan'
str1 = dict1['name']
运行结果如下:
2、键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下面的语句:
dict1 = ['name']: 'suwenhao', 'likes': 'reading', 123: 456
在运行时报错如下:
参考资料:
https://blog.csdn.net/wenhao_ir/article/details/125100220
以上是关于Python字典(dict)的操作方法汇总(约18种操作方法),并附示例代码的主要内容,如果未能解决你的问题,请参考以下文章