1.字典概述
Python中的字典是一种可变的、无序的数据结构,用于存储键值对。字典是由一系列键和与每个键相关联的值组成的,其中每个键必须是独一无二的。在许多编程语言中这被称为映射(mapping)。Python中的字典使用{}括起来,其中每个键与其值之间用冒号:分隔,键值对之间使用逗号分隔。下面是一个简单的例子:
score = {'Alice': 85, 'Bob': 75, 'Cathy': 90, 'David': 80}
print(score)
输出结果如下:
{'Alice': 85, 'Bob': 75, 'Cathy': 90, 'David': 80}
2.创建字典
2.1 直接创建
在Python中,可以使用{}直接创建一个空字典,也可以在花括号中提供键值对列表来创建一个非空字典。下面是一个示例:
# 创建一个空字典
my_dict = {}
# 创建一个非空字典
my_dict = {'one': 1, 'two': 2, 'three': 3}
print(my_dict)
输出结果如下:
{'one': 1, 'two': 2, 'three': 3}
2.2 通过关键字创建
如果要使用变量名作为键构建字典,在Python 3.7及以上版本中,可以使用字典解包(dictionary unpacking),它使用**符号将字典转换为关键字参数。下面是一个示例:
# 使用字典解包创建字典
name = 'Bob'
age = 25
person = {'name': name, 'age': age}
my_dict = {'person': person}
print(my_dict)
# 使用关键字创建字典
my_dict = dict(name='Tom', age=22)
print(my_dict)
输出结果如下:
{'person': {'name': 'Bob', 'age': 25}}
{'name': 'Tom', 'age': 22}
3.访问字典中的值
在Python中,可以使用键来访问字典中的值,例如:
my_dict = {'one': 1, 'two': 2, 'three': 3}
print(my_dict['two'])
输出结果如下:
2
4.修改字典
可以使用键来添加、修改和删除字典中的元素。例如,下面的代码演示如何通过键来添加新的键值对:
my_dict = {'one': 1, 'two': 2, 'three': 3}
my_dict['four'] = 4
print(my_dict['four'])
输出结果如下:
4
通过键来修改字典中的值,可以直接使用键来赋值:
my_dict = {'one': 1, 'two': 2, 'three': 3}
my_dict['one'] = 100
print(my_dict['one'])
输出结果如下:
100
通过键来删除字典中的元素,可以使用Python的del语句:
my_dict = {'one': 1, 'two': 2, 'three': 3}
del my_dict['one']
print(my_dict)
输出结果如下:
{'two': 2, 'three': 3}
5.字典方法
Python的字典类型提供了许多强大的方法,这里介绍一些常用的方法。
5.1 keys()
keys()方法返回一个包含所有字典键的列表,列表中的键按照它们在字典中出现的顺序排列:
my_dict = {'one': 1, 'two': 2, 'three': 3}
print(my_dict.keys())
输出结果如下:
dict_keys(['one', 'two', 'three'])
但是需要注意的是,Python 3中的字典键列表不再是一个真正的列表,而是一个类似于列表的视图(view)对象,它可以动态地反映底层字典中的变化。需要将它们显式地转换为列表:
my_dict = {'one': 1, 'two': 2, 'three': 3}
keys_list = list(my_dict.keys())
print(keys_list)
输出结果如下:
['one', 'two', 'three']
5.2 values()
values()方法返回一个包含所有字典值的列表,列表中的值按照它们在原始字典中出现的顺序排列:
my_dict = {'one': 1, 'two': 2, 'three': 3}
print(my_dict.values())
输出结果如下:
dict_values([1, 2, 3])
5.3 items()
items()方法返回一个包含所有字典项(item)的列表,其中每个项都是一个包含键和值得元组,列表中的元组按照它们在原始字典中出现的顺序排列:
my_dict = {'one': 1, 'two': 2, 'three': 3}
print(my_dict.items())
输出结果如下:
dict_items([('one', 1), ('two', 2), ('three', 3)])
5.4 get()
get()方法返回指定键的值。如果键不存在,则返回None或指定的默认值。例如:
my_dict = {'one': 1, 'two': 2, 'three': 3}
print(my_dict.get('two'))
print(my_dict.get('four')) # 返回None
print(my_dict.get('four', 0)) # 返回0
输出结果如下:
2
None
0
6.字典的遍历
可以使用Python的for循环来遍历字典中的所有键和值。例如,下面的代码演示了如何遍历字典中的所有键和对应的值:
my_dict = {'one': 1, 'two': 2, 'three': 3}
# 遍历所有键
for key in my_dict:
print(key)
# 遍历所有值
for value in my_dict.values():
print(value)
# 遍历所有键和值
for key, value in my_dict.items():
print(key, value)
输出结果如下:
one
two
three
1
2
3
one 1
two 2
three 3
7.字典的嵌套
字典中的值可以是另一个字典。例如,下面的代码演示了如何创建一个嵌套字典:
my_dict = {'person1': {'name': 'Bob', 'age': 25},
'person2': {'name': 'Tom', 'age': 22},
'person3': {'name': 'Mary', 'age': 30}}
print(my_dict['person1'])
print(my_dict['person1']['name'])
输出结果如下:
{'name': 'Bob', 'age': 25}
Bob
8.总结
通过本文的介绍,可以看出Python中字典的强大之处。与其他编程语言的映射相比,Python的字典具有动态性、容错性、可变性、高效性和可读性。掌握Python中字典的基本概念和常用方法,能够让开发人员更加高效地使用Python进行编程。