字典
dict 用{}表示 用键值对数据 {key:value} 唯一性
键 都必须是可哈希的 不可变数据类型可以当作字典中的键
值 没有任何限制
增删改查
增加
dic[key] = value
dic.setdefault(key,value) 如果键在字典中存在不进行任何操作,否则就添加
可以通过key查询,没有这个key返回None
删除
pop(key) 有返回值 返回的是被删除value del dic[key] popitem() 随机删除 clear() 清空字典
*******字典中的遍历删除问题:
这种方式在python3中报错
这种方式是一定有问题的: d = {'a':1, 'b':2, 'c':3} for key in d: d.pop(key) 会报这个错误:RuntimeError: dictionary changed size during iteration 这种方式Python2可行,Python3还是报上面这个错误。 d = {'a':1, 'b':2, 'c':3} for key in d.keys(): d.pop(key) Python3报错的原因是keys()函数返回的是dict_keys而不是list。Python3的可行方式如下: d = {'a':1, 'b':2, 'c':3} for key in list(d): d.pop(key)
改
dic[key] = value
dic.update(字典)
查
get(key) dic[key] for 循环 setdefault(key)
字典的其他操作
keys 获取到所有的键存在一个高仿的列表中 values 获取到所有的值存在一个高仿的列表中 items 获取到所有的键值对已元祖的形式存在一个高仿的列表中 解构: a,b = 1, 2 a,b = (1,2) a,b = [1,2]
字典的嵌套
dic = { 'name':'汪峰', 'age':43, 'wife':{ 'name':'国际章', 'age':39, 'salary':100000 }, 'baby':[ {'name':'熊大','age':18}, {'name':'熊二','age':15}, ] } dic['baby'][0]['age'] = 19 print(dic)