Python—字典
数据类型划分
- 不可变数据类型(可哈希):元组、bool、int、str
- 可变数据类型(不可哈希):list、dict、set
字典dict
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
- 字典操作—增
dic = {'age':18,'name':'jin','sex':'male'} dic['age'] = 15 #当字典中已经有age键值对时,执行的操作是修改age的值 >>>{'name': 'jin', 'age': 15, 'sex': 'male'} dic['nero'] = 30 #当字典中没有nero键值对时,执行的操作是将nero键值对添加到字典中 >>>{'age': 18, 'sex': 'male', 'nero': 30, 'name': 'jin'} dic.setdefault('ray','hey') #当字典中没有ray键值对时,将ray键值对添加到字典中,如只添加键而没有值,默认值为None dic.setdefault('ray',10) #当字典中已经有ray键值对时,不执行任何操作,也不覆盖原值 >>>{'age': 18, 'name': 'jin', 'ray': 'hey', 'sex': 'male'}
- 字典操作—删
dic = {'age':18,'name':'jin','sex':'male'} dic.pop('name') #指定键值删除,可以只输入key >>>{'age': 18, 'sex': 'male'} dic.popitem() #随机删除一个键值对 >>>{'sex': 'male', 'name': 'jin'} del dic['age'] #指定键值删除,键值不存在则报错 >>>{'name': 'jin', 'sex': 'male'} dic.clear() #清空字典 >>>{}
- 字典操作—改
dic1 = {'nero':30,'hobby':'girl','sex':'man','age':18} dic = {'age':18,'name':'jin','sex':'male'} dic.update(dic1) #将dic1中所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic中 >>>{'age': 18, 'sex': 'man', 'hobby': 'girl', 'nero': 30, 'name': 'jin'} dic['key'] = value #如果已有则改,没有则增
字典操作—查
dic = {'age':18,'name':'jin','sex':'male'} print(dict[key]) #如果字典中没有该key,将会报错 for循环查找 print(dic.get('sex')) #如果字典中没有该key,则返回None,有则返回key的值 >>>male