Python的字典(dictionary)是一种灵活的数据结构类型,字典的每个键值对(key=>value)用冒号(:)分割,每个对之间用逗号(,)分割。Python字典里的键必须独一无二,但值则不必的。字典的值可以取任何数据类型,但必须是不可变的(unhashable),如字符串,元组或数值, 用列表是不行的。本文教你一文看懂Python字典类型数据常见操作和排序。
字典的创建
字典的创建主要有2种方法: 直接赋值和根据键赋值。下例中分别使用2种方法创建了字典d1和字典d2。
>>> d1 = {
'key3': 4, 'key2': 5, 'key1': 4}
>>> print(d1)
{
'key3': 4, 'key2': 5, 'key1': 4, }
>>> d2 = dict()
>>> d2['key5']=1
>>> print(d2)
{
'key5': 1}
访问字典的键与值
你可以直接根据dict['键名']获取一个值,也可以通过dict.keys()获取所有的键或者dict.values()获取所有的值。但需要注意的是dict.keys()或dict.values()返回的并非列表,你需要使用list方法才能将所有的键和值转化为列表形式。
>>> d1 = {
'key3': 4, 'key2': 5, 'key1': 4}
>>> print(d1['key3'])
4
>>> print(d1.keys())
dict_keys(['key3', 'key2', 'key1'])
>>> print(list(d1.keys()))
['key3', 'key2', 'key1']
>>> print(list(d1.values()))
[4, 5, 4]
注意: 当你尝试用一个不存在的键获取值时会出现KeyError,一个更好的习惯是在获取值前先使用if key in dict来判断一个键是否已经存在。
>>> print(d1['key6'])
Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: 'key6'
>>> print('key6' in d1)
False
遍历字典
使用for key, value in dict.items()可以遍历整个字典。如果你只喜欢遍历键名或值,你可以只使用for key in dict.keys()或 for value in dict.values()。
for key, value in d1.items():
print("{}->{}".format(key, value))
for key in d1.keys():
print(key)
for value in d1.values():
print(value)
字典数据的添加
字典与列表一样都是可变类型的数据,所以可以实现数据的添加和修改。实现的方法主要有两种:1是创建新的键名并赋值,2是使用update方法。dict自带的update方法非常有用,不仅可以插入新的键值对,还是实现两个字典合并的首选方法。
>>> print(d1)
{
'key3': 4, 'key2': 5, 'key1': 4}
>>> d1.update({
'key4':2})
>>> print(d1)
{
'key3': 4, 'key2': 5, 'key1': 4, 'key4': 2}
>>> d1['key5']=