1. 数据类型划分:
(1) 不可变数据类型(可哈希):
元组, bool, int(123 就是123,不会变成其他数), str, 字典的keys
(2) 可变数据类型(不可哈希):
列表list, 字典dict, 集合set
2. 字典的key必须是不可变数据类型, 可哈希
字典的value, 任意数据类型
3. 字典的优点:二分查找去查询;存储大量的关系型数据
4. 字典的特点:python3.5以及之前的版本:无序
5. 增:
(1) dic1['high'] = 173
没有键值对,添加
存在键值对,则值覆盖
(2) setdefault()
没有则增加,存在则不变
6. 删:
(1) pop('kidd',None):
按键去删,有返回值;没有则报错,后面加None时,若没有,则返回None,有就直接删除(可设置返回值)
(2) popitem():
3.5版本随机删除, 3.6版本删除最后一个, 有返回值 (其实没啥意义)
(3) del:
del dic['name'] #没有则报错,故基本用pop()
del dic #直接删除这个字典
(4) clear():
清空字典:dic.clear()
7. 改:
(1) 直接改
(2) update():
dic2.update(dic) # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
8. 查:
(1) value1 = dic["name"] # 没有会报错
(2) get():
value2 = dic.get("hssghash","默认返回值") # 没有可以返回设定的返回值
9. 面试题:
(1) 用一行代码转换a,b的值
a = 1
b = 2
a, b = b, a
print(a, b)