1.字典(dict) {'':'',.....}
1.1字典的增删改查:
增:dict[key] = value 如果键不存在,就添加这个键值对;如果键存在,就修改这个键的值
dic.setdefault(args1,args2) 如果键不存在,就填加键值对args1:args2,args2的默认值为None;如果键存在,就返回键对应的值
删:dict.pop(args1,args2) 删除键为args1的键值对,并返回删除的值(不是键值对);如果不存在,则返回args2
dict.popitem() 随机删除一个键值对(一般删除末尾对),返回以键值对为元素的元组
del dict[key] 删除指定键的值
改:dict[key] = value 如果键不存在,就添加这个键值对;如果键存在,就修改这个键的值
dict.update(dicts) 用dicts的内容更新字典(原本存在的键更新值,不存在的键创建键值对)
查:dict[key] 查看key的值,如果key不存在,则异常.
dict.get(key,args) 返回键的值,如果键不存在,则返回args,默认为None
1.2字典的其他方法
dict.keys() 将所有键对放在一个类列表中
dict.values()将所有值对放在一个类列表中
dict.items() 以元组形式将键值对放在一个类列表中
1.3其他
字典的每个键值对:分割,每对之间用,分割,整个字典放在{}中
只有不可变数据类型才能作为键,对值无要求
字典中的键必须唯一,如果出现重复,值取后面的键的值
字典是无序的(在python3.6后,按顺序打印 )
注:字典的无序是指,不能人为重新排序。
比如说你按键值1,2,3,4的顺序创建的字典,只能由解析器按创建顺序,还是1,2,3,4的输出。
你无法控制它按照,4,3,2,1的顺序输出,你也无法做到1,3,2,4的
2.解构
后为print结果
a,b = 1,2 1 2
a,b = ('你好','世界') 你好 世界
a,b = ['你好','大飞哥'] 你好 大飞哥
a,b = {'汪峰':'北京北京','王菲':'天后'} 汪峰 王菲
for k,v in dic.items(): 遍历字典中的键和值 k为键 v为值
id is ==
id(args) 返回args的内存地址
is 判断内存地址是否一致
== 判断值值是否一样
3.python的驻存机制(小数据池)
数字
数字的小数据池的范围[-5:257] 不包括257 在这个范围就能进入小数据池
字符串
长度<=1的字符串会进入小数据池
字符串中不包含特殊字符(只包含数字字母下划线)就能进入小数据池,无字符数量限制
在做乘法时:1.乘数为1时,与不乘1规则相同
乘数不为1时,在只包含数字字母下划线时,字符数量<=20时进入小数据池
字符串可以被sys.intern()指定驻留。
只有字符串,布尔值,数字有小数据池
多个代码块中也可使用小数据池