字典操作
字典一种key - value 的数据类型
- 特性:
- 无顺序
- 去重
- 查询速度快,比列表快多了
- 比list占用内存多
语法:
info = { 'abc001': "Ben", 'abc002': "Mike", 'abc003': "John", }
字典的特性
- 字典是无序的
- key必须是唯一的
查找
>>> info = { ... 'abc001': "Ben", ... 'abc002': "Mike", ... 'abc003': "John", ... } >>> >>> >>> print(info.get("abc001")) Ben >>> >>> print("abc003"in info) // 标准用法 True >>> // 反馈True为查找到 ,false为查不到
添加
info = { 'stu1101': "TengLan Wu", 'stu1102': "LongZe Luola", 'stu1103': "XiaoZe Maliya", } >>> info['abc004']='Tom' //添加 >>> print(info) {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'} >>>
取值
>>> >>> info {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'} >>> >>> >>> print(info['abc001']) Ben >>> >>> >>> print(info['abc004']) Tom >>>
另一种字典取值方式
get()
>>> >>> a = {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'} >>> >>> a.get('abc001') 'Ben' >>> a.get('abc002') 'Mike' >>>
删除
>>> info {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'abc004': 'Tom'} >>> >>> info.pop("abc004") # 标准删除 'Tom' >>> info {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John'} # 不加参数默认删除最后一个值 >>> d = [1,2,3,4,5] >>> >>> d.pop() 5 >>> d [1, 2, 3, 4] >>> >>> info.popitem() # 随机删除 ('abc003', 'John') >>> info {'abc001': 'Ben', 'abc002': 'Mike'} >>> # del 是Python通用删除方法 >>> del info['abc001'] >>> info {'abc002': 'Mike'} >>>
循环dict
info = { 'abc001': "Ben", 'abc002': "Mike", 'abc003': "John" } //字典循环 for i in info: print(i,info[i])
其他
keys values update items
##keys >>> info = { ... 'abc001': "Ben", ... 'abc002': "Mike", ... 'abc003': "John" ... } >>> print(info) {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John'} >>> #values >>> print(info.values()) #把所有的值打印不包括Key dict_values(['Ben', 'Mike', 'John']) #keys >>> print(info.keys()) #把所有Key打印出来,不包括values dict_keys(['abc001', 'abc002', 'abc003']) >>> >>> #update >>> b ={ ... 'stu1101': "alex", ... 1:2, ... 3:4 ... } >>> info.update(b) #合并字典,没有的创建新的,存在的覆盖 >>> print(info) {'abc001': 'Ben', 'abc002': 'Mike', 'abc003': 'John', 'stu1101': 'alex', 1: 2, 3 : 4} >>> >>> #items >>> print(info.items()) #字典转换列表 dict_items([('abc001', 'Ben'), ('abc002', 'Mike'), ('abc003', 'John'), ('stu1101 ', 'alex'), (1, 2), (3, 4)]) >>>
python3 循环字典两种方法
items()
>>> D = {'Google': 'www.google.com', 'Runoob': 'www.runoob.com', 'taobao': 'www. taobao.com'} >>> for k,v in D.items(): ... print(k,v) ... >>> D.items() dict_items([('Google', 'www.google.com'), ('Runoob', 'www.runoob.com'), ('taobao ', 'www.tao.com')]) # 执行结果 Google www.google.com Runoob www.runoob.com taobao www.taobao.com
这种方法,大数据时候不要用,因为要把字典转换成一个列表元组,对占用性能。
推荐循环字典方法:
>>> for i in D: ... print(i,D[i]) ... # 执行结果 Google www.google.com Runoob www.runoob.com taobao www.tao.com