Python 中的字典(dictionary)是一种无序的、可变的、可迭代的数据类型,它由键(key)和值(value)组成。字典通常用于存储和管理散列数据。Python 中提供了丰富的字典、映射和散列表的使用方法。
一、创建字典
可以使用{}
或者dict()
函数来创建一个字典,如果要创建一个空字典,可以这样写:
empty_dict = {}
empty_dict = dict()
也可以用一个包含键值对的列表或者可迭代对象,来初始化一个字典。下面是一个例子:
fruits = [
("apple", 5),
("orange", 3),
("banana", 10)
]
fruit_dict = dict(fruits)
print(fruit_dict) # {'apple': 5, 'orange': 3, 'banana': 10}
二、访问字典
可以通过键来访问字典中的值,如果键不存在,会抛出一个KeyError
异常。下面是一个例子:
fruit_dict = {'apple': 5, 'orange': 3, 'banana': 10}
print(fruit_dict['apple']) # 5
print(fruit_dict.get('watermelon', 0)) # 0
上面的例子中,get()
方法可以安全地获取一个字典中的值。如果字典中不存在指定的键,则会返回默认值(上面的例子中是0
)。
三、添加或修改字典
可以使用[]
或者update()
方法来添加或修改字典中的一个或多个键值对。下面是一个例子:
fruit_dict = {'apple': 5, 'orange': 3, 'banana': 10}
fruit_dict['apple'] = 6
fruit_dict['watermelon'] = 2
fruit_dict.update({'mango': 8, 'cherry': 12})
print(fruit_dict) # {'apple': 6, 'orange': 3, 'banana': 10, 'watermelon': 2, 'mango': 8, 'cherry': 12}
上面的例子中,使用[]
来修改一个键对应的值,使用update()
方法来添加一个或多个键值对。
四、删除字典中的元素
可以使用del
或者pop()
方法来删除字典中指定的键值对。下面是一个例子:
fruit_dict = {'apple': 5, 'orange': 3, 'banana': 10}
del fruit_dict['orange']
print(fruit_dict) # {'apple': 5, 'banana': 10}
fruit_dict.pop('banana')
print(fruit_dict) # {'apple': 5}
上面的例子中,del
通过指定键来删除键值对,pop()
通过指定键来获取对应的值,并且在字典中删除这个键值对。
五、遍历字典
可以通过keys()
、values()
、items()
等方法来遍历字典的键、值或者键值对。下面是一个例子:
fruit_dict = {'apple': 5, 'orange': 3, 'banana': 10}
for key in fruit_dict.keys():
print(key)
for value in fruit_dict.values():
print(value)
for item in fruit_dict.items():
print(item)
上面的例子中,keys()
方法可以返回所有的键,values()
方法可以返回所有的值,items()
方法可以返回所有的键值对。这些方法返回的对象都是可迭代的对象。
六、字典的排序
可以使用sorted()
和items()
方法来对字典中的键值对进行排序。下面是一个例子:
fruit_dict = {'apple': 5, 'orange': 3, 'banana': 10}
sorted_items = sorted(fruit_dict.items(), key=lambda x:x[1], reverse=True)
print(sorted_items) # [('banana', 10), ('apple', 5), ('orange', 3)]
上面的例子中,将字典中的键值对,按照值的大小进行降序排序。
七、散列表的使用
散列表是一种由键值对组成的数据结构,它可以提供高效的访问和修改。Python 中的字典就是一种典型的散列表。
在 Python 中,可以通过hash()
方法来获取一个对象的散列值。散列表的实现使用了散列函数,它可以将一个键映射为一个整数,然后根据这个整数来访问和修改散列表中的数据。
八、使用 defaultdict 类型的字典
defaultdict 类型的字典是 Python 自带工具类 collections 中的一员。它可以指定一个默认值,即使字典中对应键不存在也不会报错。
下面是一个例子:
from collections import defaultdict
fruit_dict = defaultdict(int)
fruit_dict['apple'] += 1
fruit_dict['banana'] += 2
print(fruit_dict) # defaultdict(<class 'int'>, {'apple': 1, 'banana': 2})
上面的例子中,defaultdict
的参数int
指定了默认值的类型为整数,即如果访问一个不存在的键,那么返回的默认值为0
。