dicpython
{}"键":"值" 别的语言叫"键值对数据"面试
键:必须是可哈希的类型(不可变更),并且是惟一的函数
值:任意code
字典是无序的:python3.6版本以上会默认定义时的顺序,python3.5如下显示的是随机顺序对象
字典是可变的:索引
1.当输入一个新的键值对以后,字典会先检查要添加的键是否存在内存
若是键在字典中存在就不添加,要是不存在就添加rem
删:get
经过"键"进行删除,pop具备返回值,返回的是被删除的值it
字典没有remove
del dic["键"] 删除指定的键值对
dic.clear() 清空
print(dic) 删除整个 字典中的键值对
改:
dic["键"]="这是值 " 键在字典中存在就是修改,不存在就是增长
dic.update(键值对,键值对) update里面的字典级别高,会覆盖掉原来的内容
dic.setdefault("5":5) 键不存在就添加,键存在就不添加
查:
字典的查询只能经过键寻找值,不能经过值寻找键.
dic.setdefault("键")
若是键在字典中存在就返回对键对应的值,若是不存在就报错
print(dic.get("c","b"))获取值的时候能够指定返回的内容(计算和编辑,并赋值),键不存在的时候不会报错
dic = {"1":1,"2":2,"3":3,"4":4}
删除"2",3种方式
添加"5":5,2种方式
修改:"1":10086
查看"3"的值
dic.del("2")
dic.clear
dic.pop("2")
dic["5"] = 5
dic.update("5":5)
dic["1"] = 10086
dic["3"] 没有就会报错
print(dic.keys)
print(dic.values)
for i in dic.key() 高仿列表 :无序无索引
for k,v in dic.items():
print(k,v)
for i in dic:
print(i,dic(i))
for i, k in enumerate(dic,1): #enumerate 第二个参数是起始数字,默认是0
print(i,k)
字典的嵌套:
字典是存储大量的数据的数据类型,容量比列表还要大
字典在在查找值的时候可以更方便快速
字典可以将数据进行关联
字典比较消耗内存
有明确的对应关系时,推荐使用字典,字典必定要用明白
list (1,3,4)
tuple
目前所学,字典是不能转换的
查找字典的嵌套时,按照键去一层一层查找
小数据池 面试和解决作题时的困惑
深度拷贝 面试必问
周五考试考到到函数以前
1.字典:
dict -- {} {"key":'value',"a":1}
dic = {}
字典的无序的,字典是可变的 字典的键 -- 可哈希(不可变),惟一 字典的值 -- 任意
增: dic["键"] = "值" dic.setdefault("键","值") # 键不存在就添加,存在就不填加. 删: pop("键") del dic["键"] dic.clear() 清空 改: dic["键"] = "值" dic.update({"a":1,"b":1}) # update(里边的级别高),会把以前内容中相同的key对应的值覆盖 # 没有的话会填加 查: get("键","本身指定返回的内容") # 不存在返回的是None dic["键"] #不存在就报错 dic.setdefault("键") # 查询
其余方法: for i in dic: print(i) 循环的是字典的键
for i in dic.keys(): print(i)
dic.keys() -- 返回的是一个高仿列表 -- 没有索引 dic.values() -- 返回的是一个高仿列表 -- 没有索引 dic.items() -- 返回的是一个高仿列表,列表里存放的是元组类型,\ 元组第一个元素是键,第二个元素是值 li = [1,2,3,4,54] for i,k in enumerate(li): # enumerate 第二个参数默认不写就是0 -- 枚举 # print(i,k)
解构: a,b = b,a --- 交换的是指向 a,b = 1,2 a,b = (45,6) a,b = [1,4] a,b = {"s":1,"a":1} # 字典拆包后的结果是键赋值给了a和b的变量 enumerate() # 枚举 给你要迭代对象,加一个序号 默认是从0开始,能够本身指定 字典的嵌套: 查找的字典的嵌套时,按照键去一层一层的查找