字典 课堂笔记整理
字典
字典:
-
- 定义:字典是一系列键值对。key-value。
储存大量关系型数据,由于可以使用二分法,查询速度非常快。
-
数据类型分类
-
可变性
- 可变数据类型(不可哈希):list、dict、set
- 不可变数据类型(可哈希):str、int、bool、tuple
-
容器类型
- 容器类:可承载各种数据类型:list、dic
-
字典的增减改查
-
-
增
- 1.直接添加型:dic[key] = "value' 备注:有则覆盖原值,无则添加新的键值对。。有‘改’的功能
- 2.setdefault()
- dic.setdefault("key","value") 备注:无则添加键值对,有则不变,维持原键值对。
1 dic = {"name":"jin", 2 "age":18, 3 "sex":"male", 4 } 5 dic.setdefault('hobby') 6 dic.setdefault('hobby','girl') 7 dic.setdefault('name','ritian') 8 print(dic)
输出结果
{'name': 'jin', 'age': 18, 'sex': 'male', 'hobby': None}
-
减
-
- 1.(首推!!)弹出函数:dic.pop()
- 有返回值,返回的是相对应键的值。
- 通过dic.pop("key")删除的是键值对。
- 若没有对应的键,就报错。
- 去除报错:dic.pop("key",‘None’) ###设定报错时的返回值。
-
-
-
- 2.dic.clear():清空字典。
- 3.del dic :删除字典
-
-
-
- del dic[key]:删除键值对
-
-
-
- 4.dic.popitem():随机删除键值对。有返回值,返回元组形式的键值对
-
-
-
- 3.6以后,删除最后一个键值对
-
-
-
-
-
改
-
-
1. dic[kay] = value
-
2. dic.update(dic2):将dic2的键值对覆盖添加到dic中。。 有则改之,无则添加,多余保留
-
-
-
实例
1 dic = {"name":"jin","age":18,"sex":"male"} 2 dic2 = {"name":"alex","weight":75} 3 dic2.update(dic) # 将dic键值对,覆盖并添加到dic2 4 print(dic) 5 print(dic2)
输出结果:
1 {'name': 'jin', 'age': 18, 'sex': 'male'} 2 {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
-
-
查
-
- 1.dic[key] = 值 ,如果没有对应的值,就报错
- 2(首推!!!).dic.get(key,设置返回值)
- 默认返回值是None,可以设置返回值,
-
-
其他方法
-
-
keys()、values(): dic.keys()、dic.values()类似列表而不是列表。可以遍历打印
-
item():[(key1:value1),(key2:value2)]
-
-
-
分别赋值
-
1 a,b = 2,3 2 print(a,b) 3 a,b = (2,3) 4 print(a,b) 5 a,b = [2,3] 6 print(a,b)
输出结果:
2 3 2 3 2 3
实例
1 a = 4 2 b = 5 3 a,b = b,a 4 print(a,b)
输出结果:
5 4
-
数据类型补充
- 对于list,在循环一个列表式,最好不要进行删除的操作,容易出错。因为删除会改变列表的索引。
- 在循环字典中,不能对字典中的键值对进行增加或者删除。
- fromkeys
1 dic = dict.fromkeys('abc','alex') 2 print(dic) 3 dic = dict.fromkeys([1,2,3],[]) 4 print(dic) 5 dic[1].append('老男孩') 6 print(dic)
1 {'a': 'alex', 'b': 'alex', 'c': 'alex'} 2 {1: [], 2: [], 3: []} 3 {1: ['老男孩'], 2: ['老男孩'], 3: ['老男孩']} #### fromkeys()添加的值在内存空间属于一个,所以改变一个值,其他值都跟着改变。
浙公网安备 33010602011771号