python第四天
python第四天
字典
-
字典的初识:
-
列表可以存储大量的数据,数据之间的关联性不强
-
['太白', 18, '男', '大壮', 3, '男']
-
列表的查询速度比较慢。
-
-
容器型数据类型:dict。
-
数据类型的分类(可变与不可变):
-
可变(不可哈希)的数据类型:list dict set
-
不可变(可哈希)的数据类型: str bool int tuple
-
字典:{}括起来,以键值对形式存储的容器型数据类型:
-
dic = {'太白': {'name': '太白金星','age': 18, 'sex': '男'}, 'python22期': ['朱光亚', '大壮', '雪飞', '岑哥'], }
-
-
键必须是不可变的数据类型:int , str (bool tuple几乎不用) 唯一的。
-
值可以是任意数据类型,对象。
-
字典3.5x版本之前(包括3.5)是无序的。
-
字典3.6x会按照初次建立字典的顺序排列,学术上不认为是有序的。
-
字典3.7x以后都是有序的。
-
字典的优点:查询速度非常快,存储关联性的数据。
-
字典的缺点:以空间换时间。
-
字典的创建
# 方式一: # dic = dict((('one', 1), ('two', 2), ('three', 3))) # print(dic) # {'one': 1, 'two': 2, 'three': 3} # 方式二: # dic = dict(one=1, two=2, three=3) # print(dic) # 方式三: # dic = dict({'one': 1, 'two': 2, 'three': 3}) # print(dic)
-
验证字典的合法性
dic = {[1,2,3]: 'alex', 1: 666} # 键要不可变的数据类型 print(dic) dic = {1: 'alex', 1: '太白', 2: 'wusir'} # 键要唯一 print(dic)
- 字典的增删改查
dic = {'name': '太白', 'age': 18, 'hobby_list': ['直男', '钢管', '开车']} 增: # 直接增加 有则改之,无则增加 # dic['sex'] = '男' # dic['age'] = 23 # 改 # print(dic) setdefault 有则不变,无则增加 # dic.setdefault('hobby') # dic.setdefault('hobby', '球类运动') # dic.setdefault('age', 45) # print(dic) 删pop 按照键删除键值对, 有返回值 *** # 设置第二个参数则无论字典中有无此键都不会报错 # dic.pop('age') # ret = dic.pop('age') # ret = dic.pop('hobby','没有此键') # print(ret) # print(dic) clear 清空 ** # dic.clear() # print(dic) del ** # # del dic['age'] # del dic['age1'] # print(dic) 改 dic['name'] = 'alex' # print(dic) 查 # print(dic['hobby_list']) # print(dic['hobby_list1']) get ***查找键返回值,找不到也可以设置返回值 # l1 = dic.get('hobby_list') # l1 = dic.get('hobby_list1','没有此键sb') # 可以设置返回值 # print(l1) 三个特殊的 keys()以列表返回一个字典所有的键 values()以列表返回字典中的所有值 items()以列表返回可遍历的(键, 值) 元组数组 # print(dic.keys(),type(dic.keys())) # 可以转化成列表 # print(list(dic.keys())) # for key in dic.keys(): # print(key) # for key in dic: # print(key) # values() # print(dic.values()) # print(list(dic.values())) # for value in dic.values(): # print(value) # items() # print(dic.items()) # for key,value in dic.items(): # print(key,value) # a,b = ('name', '太白') # print(a,b)
-