字典主要特征
- 通过键而不是通过索引来读取
- 字典是任意对象的无序集合
- 字典是可变的,并且可以任意嵌套
- 字典中的键必须唯一
- 字典中的键必须不可变
1. 字典的创建与删除
、定义字典时,每个元素都包含两个部分“键”和“值”。
语法格式如下:
dictionary = {'key1':'value1','key2':'value2',...,'keyn':'valuen',}
参数说明:
- dictionary:表示字典名称。
- key:表示元素的键,必须是唯一的,并且不可变。
- value:表示元素的值,可以是任何类型数据,不是必须唯一的。
例如:
dictionary = {'1':'159','2':'nature','3':'miss'}
print(dictionary)
运行结果:
{'1':'159','2':'nature','3':'miss'}
、同列表和元组一样,也可以创建空字典。在python中,可以使用下面两种方法创建空字典:
dictionary = {}
或者
dictionary = dict()
、python中的dict()方法除了可以创建一个空字典外,还可以通过已有数据快速创建字典。主要表现为以下两种形式:
1. 通过映射函数创建字典的语法如下:
dictionary = dict(zip(list1,list2))
参数说明:
- dictionary:表示字典名称。
- zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并且返回包含这些内容的zip对象。
例如:
name = ['point','country','number'] #作为键的列表
sign = ['5','China','11'] #作为值的列表
dictionary = dict(zip(name,sign)) #转换为字典
print(dictionary)
运行结果:
{'point':'5','country':'China','number':'11'}
2. 通过给定的“键-值对”创建字典
dictionary = dict(key1='value1',key2='value2',...,keyn='valuen',)
参数说明:
- dictionary:表示字典名称。
- key:表示元素的键,必须是唯一的,并且不可变。
- value:表示元素的值,可以是任何类型数据,不是必须唯一的。
例如:
dictionary = dict(point=5,country='China',number=11)
print(dictionary)
、在python中,还可以使用dict对象的fromkeys()方法创建为空的字典,语法如下:
dictionary = dict.fromkeys(list1)
参数说明:
- list1:作为字典的键的列表。
例如,创建一个只包含名字的字典。
name_list = ['point','country','number'] #作为键的列表
dictionary = dict.fromkeys(name_list)
print(dictionary)
运行结果:
{'point': None, 'country': None, 'number': None}
、另外,还可以通过已经存在的元组和列表创建字典。例如:
name_tuple = ('point','country','number') #作为键的元组
sign = [5,'China','11']
dict1 = {name_tuple:sign}
print(dict1)
运行结果:
{('point', 'country', 'number'): [5, 'China', '11']}
删除字典
同列表和元组一样,不再需要的字典也可以使用del命令删除整个字典。例如:
del dictionary
另外,如果只是想删除字典的全部元素,可以使用字典对象的clear()方法实现。例如:
dictionary.clear()
通过键值访问字典
在python中,访问字典元素可以通过下标的方式实现,与列表和元组不同,这里的下标不是索引号,而是键。
print(dictionary['point'])
运行结果:
None
另外,python中推荐的方法是使用字典对象的get()方法获取指定键的值。
dictionary.get(key[,default])
参数说明:
- key:指定的键。
- defau:为可选参数,用于指定当指定的“键”不存在时,返回一个默认值,如果省略,则返回None。
例如:
print(dictionary.get('number'))
print(dictionary.get('number1','字典中没有此键'))
运行结果:
None
字典中没有此键
遍历字典
字典是以“键-值对”的形式存储数据的,所以需要通过这些“键-值对”进行获取。python提供了遍历字典的方法,使用字典对象的items()方法可以获取字典的“键-值对”列表,语法格式如下:
dictionary.items()
其中,dictionary为字典对象;返回值为可遍历的(键-值对)的元组列表。想要获取到具体的“键-值对”,可以通过for循环遍历该元组列表。
dictionary = {'qq':'123456','百度':'123456','tel':'123456'}
for item in dictionary.items():
print(item)
运行结果:
('qq','123456')
('百度','123456')
('tel','123456')
上面的例子获取的是字典中的各个元素,如果想要获取具体的每个键和值,可以使用下面的代码:
dictionary = {'qq':'123456','百度':'123456','tel':'123456'}
for key,value in dictionary.items():
print(key,"的值是:",value)
说明:在python中,字典对象还提供了value()方法和keys()方法,用于返回字典的“值”和“键”列表,它们的使用方法同items()方法类似。
添加、修改和删除字典元素
由于字典是可变序列,所以可以随时在字典中添加“键-值对”。向字典中添加元素的语法格式如下:
dictionary[key] = value
例如:
dictionary = dict(point=5,country='China',number=11)
dictionary['tel'] = '123456'
print(dictionary)
运行结果:
{'point': 5, 'country': 'China', 'number': 11, 'tel': '123456'}
由于在字典中,“键”必须是唯一的,如果新添加元素的“键”与已经存在的“键”的键重复,那么将使用新的“值”替换原来的值,这也相当于修改字段的元素。例如:
dictionary['point'] = '10'
print(dictionary)
运行结果:
{'point': '10', 'country': 'China', 'number': 11, 'tel': '123456'}
当字典中的某一个元素不要要的时候,可以使用del命令将其删除。例如:
del dictionary['point']
print(dictionary)
运行结果:
{'country': 'China', 'number': 11, 'tel': '123456'}