字典概念:无序的
, 可变
的键值对集合
定义
-
方式1
{key: value, key: value…}例如:{"name": "sz", "age": 18}
-
方式2
fromkeys(S, v=None)
静态方法:类和对象都可以调用- 类调用
dict.fromkeys(“abc”, 666)
{‘a’: 666, ‘c’: 666, ‘b’: 666}
此处的dict, 是指字典类型 - 对象调用
dic.fromkeys(“abc”, 666)
{‘a’: 666, ‘c’: 666, ‘b’: 666}
此处的dic, 是实例化的字典对象
注意 key不能重复 如果重复 后值会把前值覆盖 key必须是任意不可变类型
- 类调用
常用操作
-
增
-
dic[key] = value,当key在原字典中不存在时, 即为新增操作
删
-
- del dic[key] ,key, 必须要存在
-
- dic.pop(key[, default])
删除指定的键值对, 并返回对应的值
如果key, 不存在, 那么直接返回给定的default值; 不作删除动作
如果没有给定默认值, 则报错
- dic.pop(key[, default])
-
- dic.popitem()
删除按升序排序后的第一个键值对, 并以元组的形式返回该键值对
如果字典为空, 则报错
- dic.popitem()
-
- dic.clear()
删除字典内所有键值对
返回None
注意, 字典对象本身还存在, 只不过内容被清空 注意和del的区别
改
- dic.clear()
-
只能改值, 不能改key
- 修改单个键值对
dic[key] = value
直接设置, 如果key不存在, 则新增, 存在则修改 - 批量修改键值对
oldDic.update(newDic)
根据新的字典, 批量更新旧字典中的键值对
如果旧字典没有对应的key, 则新增键值对
查
- 修改单个键值对
-
- 获取单个值
-
方式1
dic[key];如果key, 不存在, 会报错 -
方式2
dic.get(key[, default])
如果不存在对应的key, 则取给定的默认值default
如果没有默认值, 则为None,不会报错
但是, 原字典不会新增这个键值对 -
方式3
dic.setdefault(key[,default])
获取指定key对应的值
如果key不存在, 则设置给定默认值, 并返回该值
如果默认值没给定
则使用None代替
-
- 获取所有的值
dic.values() - 获取所有的键
dic.keys() - 获取字典的键值对
dic.items() - 遍历
for in
for x,y in info.items()
注意 Python2.x和Python3.x版本之间关于获取键, 获取值, 获取item, 之间的区别 Python2.x 直接是一个列表 可通过下标进行获取指定元素 Python3.x 中是Dictionary view objects 优势 当字典发生改变时, view objects会跟着发生改变 转换成列表使用 list(result) 转换成迭代器 iter(result) 也可以直接被遍历
计算
- 获取单个值
-
- len(info)
键值对的个数
判定
- len(info)
-
- x in dic
判定dic中的key, 是否存在x - x not in dic
判定dic中的key, 是否不存在x
- x in dic