Python 中字典dict详解
一、字典(dict)概念
字典是另一种可变容器模型,且可存储任意类型对象如字符串、数字、元组等其他容器模型,因为字典是无序的所以不支持索引和切片。
二、字典(dict)的定义
一般格式:
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示
d = {key1 : value1, key2 : value2, key3 : value3 }
例子
dict_data = {'name': '王华', 'age': 23, 'sex': '男', '班级': '计算机一班'}
结果如下:
:::info
注意:dict 作为Python的关键字和内置函数,变量名不建议命名为 dict 。
:::
空字典:
格式:字典名={ } 或者 字典名= dict{ }
# 使用大括号{}来创建空字典dict_data = {}# 打印字典print(dict_data)# 查看字典类型print(type(dict_data))
以上代码输出结果为:
{}<class 'dict'>
注意:
在使用 dict() 创建字典时,在小括号 () 内要以 key=value 的形式编写。
- key不可以重复,否则只会保留第一个;
- value值可以重复;
- key可以是任意的数据类型,但不能出现可变的数据类型,保证key唯一;
- key一般形式为字符串。
三、字典的特性
dict()是Python内置的一个数据类型,也被称为字典或映射,它是一个无序的键值对集合。每个键(key)必须是唯一的,而值(value)可以是任意的Python对象。下面是dict()的一些主要特性:
1.键值对集合
一个dict()是由一系列键值对组成的无序集合,其中每个键对应一个唯一的值。下面是一个简单的例子:
# 创建一个字典my_dict = {'apple': 2, 'banana': 3, 'orange': 4}print(my_dict) # 打印结果如下{'apple': 2, 'banana': 3, 'orange': 4}
2.可变性
dict()是可变的对象,这意味着可以添加、删除或修改它的键值对。下面是一个例子:
# 修改字典中的值my_dict['apple'] = 5# 打印结果如下{'apple': 5, 'banana': 3, 'orange': 4}
3.键的唯一性
dict()中的每个键必须是唯一的。如果试图将一个已经存在的键再次添加到dict()中,将会覆盖该键对应的原值。下面是一个例子:
# 添加一个新的键值对my_dict['pear'] = 1# 尝试将一个已经存在的键再次添加到字典中my_dict['apple'] = 6# 打印结果如下{'apple': 6, 'banana': 3, 'orange': 4, 'pear': 1}
4.值的任意性
dict()中的值可以是任意Python对象,包括其他的dict()、列表、元组、数字、字符串等。下面是一个例子:
# 字典中的值可以是列表my_dict['fruits'] = ['apple', 'banana', 'orange']# 字典中的值可以是字典my_dict['colors'] = {'apple': 'red', 'banana': 'yellow', 'orange': 'orange'}# 输出结果如下'fruits': ['apple', 'banana', 'orange'],'colors': {'apple': 'red', 'banana': 'yellow', 'orange': 'orange'}}
5.字典的长度
len()函数可以用于获取字典中键值对的数量。下面是一个例子:
# 获取字典中键值对的数量print(len(my_dict))# 输出结果如下6
6.键的类型
键可以是任意可哈希(hashable)的对象,例如数字、字符串、元组等。不过,列表和字典这样的可变对象是不能作为键的。下面是一个例子:
# 使用元组作为键my_dict[('apple', 'red')] = 2# 尝试使用列表作为键# my_dict[['apple', 'red']] = 2 # 会报错
7.字典的迭代
可以使用for循环迭代字典的键、值或键值对。下面是一个例子:
# 迭代字典的键for key in my_dict: print(key)# 迭代字典的值for value in my_dict.values(): print(value)# 迭代字典的键值对for key, value in
四、字典的内置函数
Python中的字典(dict())有一些内置的函数可以用于操作和处理字典:
1.len():返回字典中键值对的数量。
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}length = len(my_dict)print(length) # 输出:3
2.keys():返回字典中所有的键。
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}keys = my_dict.keys()print(keys) # 输出:dict_keys(['apple', 'banana', 'orange'])
3.values():返回字典中所有的值
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}values = my_dict.values()print(values) # 输出:dict_values([2, 3, 4])
4.items():返回字典中所有的键值对。
# 此方法也是字典转列表my_dict = {'apple': 2, 'banana': 3, 'orange': 4}items = my_dict.items()print(items) # 输出:dict_items([('apple', 2), ('banana', 3), ('orange', 4)])
5.clear():清空字典中所有的键值对。
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}my_dict.clear()print(my_dict) # 输出:{}
6.copy():返回字典的浅拷贝(只拷贝顶层对象)。
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}new_dict = my_dict.copy()print(new_dict) # 输出:{'apple': 2, 'banana': 3, 'orange': 4}
7.pop(key[, default]):删除并返回字典中指定键的值,如果键不存在,返回指定的默认值(默认为None)。
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}value = my_dict.pop('apple')print(value) # 输出:2print(my_dict) # 输出:{'banana': 3, 'orange': 4}value = my_dict.pop('pear', 0)print(value) # 输出:0
8.popitem():随机删除并返回字典中的一个键值对。
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}item = my_dict.popitem()print(item) # 输出:('orange', 4)print(my_dict) # 输出:{'apple': 2, 'banana': 3}
9.update(other_dict):用另一个字典中的键值对更新当前字典,如果存在相同的键,则覆盖当前字典中的值。
# 语法my_dict.update(other_dict)# 示例my_dict = {'apple': 2, 'banana': 3, 'orange': 4}new_dict = {'pear': 1, 'banana': 5}my_dict.update(new_dict)print(my_dict) # 输出:{'apple': 2, 'banana': 5, 'orange': 4, 'pear': 1}
10.删除字典del
可以使用 **del **关键字删除一个字典或字典中的键值对。
# 删除整个字典,只需使用 del 加上字典的名称my_dict = {'apple': 2, 'banana': 3, 'orange': 4}del my_dict # 删除整个字典# 删除字典中的某个键值对,需要使用 del 加上字典中需要删除的键my_dict = {'apple': 2, 'banana': 3, 'orange': 4}del my_dict['banana'] # 删除键为 'banana' 的键值对
注意:需要注意的是,del 关键字删除的是变量本身,而不是其指向的对象。因此,如果有其他变量也指向同一个字典对象,那么删除其中一个变量后,其他变量仍然可以访问该字典对象
例如:
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}other_dict = my_dictdel my_dict # 删除 my_dict 变量print(other_dict) # 输出:{'apple': 2, 'banana': 3, 'orange': 4}
11.str()函数
str() 函数将字典对象转换成一个字符串,字符串的格式为 {key1: value1, key2: value2, …}
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}my_str = str(my_dict)print(my_str) # 输出:{'apple': 2, 'banana': 3, 'orange': 4}
举例:列表(list)转字典(dict)
my_list = [('apple', 2), ('banana', 3), ('orange', 4)]my_dict = dict(my_list)print(my_dict) # 输出:{'apple': 2, 'banana': 3, 'orange': 4}
五、字典的三种取值方式
在Python中,字典(dict())有三种取值方式:
my_list = [('apple', 2), ('banana', 3), ('orange', 4)]my_dict = dict(my_list)print(my_dict) # 输出:{'apple': 2, 'banana': 3, 'orange': 4}
1.通过键获取值
可以通过字典的键获取对应的值,用法如下:
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}value = my_dict['apple']print(value) # 输出:2
2.使用get()方法获取值
也可以使用get()方法获取字典中对应键的值,如果键不存在,返回指定的默认值(默认为None),用法如下:
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}value = my_dict.get('apple')print(value) # 输出:2value = my_dict.get('pear', 0)print(value) # 输出:0
3.遍历字典获取键和值
可以遍历字典获取每个键和对应的值,用法如下:
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}for key, value in my_dict.items(): print(key, value)# 输出:# apple 2# banana 3# orange 4
4.注意
需要注意的是,如果尝试通过不存在的键获取值,会触发KeyError异常。因此,在获取字典中的值时,最好先判断键是否存在,可以使用in关键字或**keys()**方法来实现,例如:
my_dict = {'apple': 2, 'banana': 3, 'orange': 4}if 'apple' in my_dict: print(my_dict['apple']) # 输出:2if 'pear' not in my_dict.keys(): print('pear is not in the dict')
来源地址:https://blog.csdn.net/m0_50816276/article/details/130297660
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341