总结一下字典的基本用法。内容参看目录,个人认为还是比较详细的。
目录
1. 什么是字典
字典是“键-值”对的无序可变序列,字典中的每个元素可以分为两部分,“键”和“值”。定义字典时,每个元素的“键”和“值”用冒号分隔,相邻元素之间用逗号分隔,所有元素放在一对大括号”{“和”}“中。字典中的“键”可以是Python中任意不可变数据,例如整数,实数,复数,字符串,元组等等,但不能使用列表、集合、字典作为字典的“键”,因为这些对象是可变的。另外,字典中的“键”不允许重复,而值是可以重复的。
注意:Python中字典的必须是一个具体的数,或者是一个不可变序列。例如:List是一个可变序列,提供了插入删除修改操作,而tuple属于不可变序列,没有append()、extend()和insert()这些可以对序列进行修改的函数。
2.字典的创建
2.1 手动创建
使用等号直接手动创建字典。
a_dict={'DXY':"19950819" , 'HJL':"19960424"}
print(a_dict) #{'HJL': '19960424', 'DXY': '19950819'}
print(type(a_dict)) #<class 'dict'> 为字典类型
2.2 使用内置函数dict()创建
例如:
keys=['a','b','c','d']
#不是直接把列表做"键",要进过zip处理,
values=[1,2,3,4]
dictionary=dict( zip(keys, values) )
#zip里面的元素是元组,返回zip对象,可以把zip对象转换为各种形式,包括列表或者字典
print(dictionary) #{'d': 4, 'b': 2, 'a': 1, 'c': 3}
print( type(dictionary )) #<class 'dict'>
或者:将 “'键'='值'”作为dict()的参数来创建字典。
a_dict=dict(name='DYX' , age=24) #键=值对
print(a_dict) #{'age': 24, 'name': 'DYX'}
还可以利用dict.fromkeys()方法,给定“键”序列,创建“值”为空的字典。
a_dict=dict.fromkeys( ['name','age','sex'] )
print(a_dict) #{'sex': None, 'name': None, 'age': None}
#“键”是给出的序列中的元素,“值”为空。
3. 字典元素的读取
3.1下标方式读取Value
与列表类似,可以使用下标的方式来访问字典中的元素,但不同的是字典的下标是字典的“键”,而列表和元组访问时下标必须为整数值。使用下标的方式访问字典“值”时,若指定的键不存在则抛出异常。
a_dict = {'name':'DYX', 'sex':'male', 'age':24}
print(a_dict['name']) #DYX
#print(a_dict['tel']) KeyError: 'tel' 不存在抛出异常
3.2 get()读取Value
使用字典对象的get()方法可以获取指定”键“对应的”值”并且可以在指定“键“不存在的时候返回指定值,如果不指定,则默认返回None。相对于上文的方法,该方法更安全。
即:下标方法,在指定键不存在的情况下会抛出异常,而get()方法会返回指定值,或者是None。
a_dict = {'name':'DYX', 'sex':'male', 'age':24}
print(a_dict.get('ranking')) #None 指定的键ranking不存在返回None
print(a_dict.get('ranking','No entry')) #No entry 指定的键不存在,返回指定的内容No entry
3.3 keys()方法返回“键”
a_dict = {'name':'DYX', 'sex':'male', 'age':24}
print(a_dict.keys()) #输出字典的键 dict_keys(['name', 'age', 'sex'])
print(type(a_dict.keys())) #查看一下类型 <class 'dict_keys'>
print(list(a_dict.keys())) #['age', 'name', 'sex']
for key in a_dict.