dict特性
字典一种key-value的数据类型,使用就像我们上学用的字典,通过笔划、字母来查找对应页的详细内容。
特性:
- key-value结构
- key必须可hash、且必须为不可变数据类型、必须唯一(创建时如果同一个键被赋值两次,后一个值会被记住)
- 可存放任意多个值、可修改、可以不唯一
- 无序
- 查找速度快(查找的方式是折中,也就是2的n次方来查找)
一、增
1、dict[new_key]=value
- new_key--新增的key值
info={"name":"Junee","age":23,"sex":"female"} info["dept"]="Python" print(info) #输出结果 {'name': 'Junee', 'age': 23, 'sex': 'female', 'dept': 'Python'}
2、dict.setdefault(key, default=None)
- key -- 查找的键值。
- default -- 键不存在时,设置的默认键值。
如果 key 在 字典中,返回对应的值。如果key不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。
info={"name":"Junee","age":23,"sex":"female"} print(info.setdefault("dept","Python")) #输出结果 Python print(info) #输出结果 {'name': 'Junee', 'age': 23, 'sex': 'female', 'dept': 'Python'}
二、删
1、del dict[key]
- 删除键是key的条目
info={"name":"Junee","age":23,"sex":"female"} del info["sex"] print(info) #输出结果 {'name': 'Junee', 'age': 23}
2、dict.clear()
- 清空词典所有条目
info={"name":"Junee","age":23,"sex":"female"} info.clear() print(info) {}
3、del dict
删除词典
info={"name":"Junee","age":23,"sex":"female"} del info print(info) #输出结果 NameError: name 'info' is not defined
4、dict.pop(key)
- key--key值
info={"name":"Junee","age":23,"sex":"female"} info.pop("sex") print(info) {'name': 'Junee', 'age': 23}
三、改
1、dict[key]=new_value
info={"name":"Junee","age":23,"sex":"female"} info["sex"]="male" print(info) {'name': 'Junee', 'age': 23, 'sex': 'male'}
四、查
1、dict[key]
info={"name":"Junee","age":23,"sex":"female"} print(info["sex"]) female
2、dict.get(key, default=None)
- key -- 字典中要查找的键。
- default -- 如果指定键的值不存在时,返回该默认值值。
返回指定键的值,如果值不在字典中返回默认值 None。
info={"name":"Junee","age":23,"sex":"female"} print(info.get("sex")) print(info.get("weight")) #输出结果 female None
3、dict.setdefault(key:value)
- key -- 查找的键值。
- default -- 键不存在时,设置的默认键值。
如果 key 在 字典中,返回对应的值。如果key不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。
info={"name":"Junee","age":23,"sex":"female"} print(info.setdefault("name")) Junee
4、key in dict
返回布尔值,如果值在dict中返回True,不在则返回False
info={"name":"Junee","age":23,"sex":"female"} print("name" in info) print("weight" in info) True False
5、dict.keys()
返回一个字典所有的键
info={"name":"Junee","age":23,"sex":"female"} print(info.keys()) dict_keys(['name', 'age', 'sex'])
6、dict.values()
返回字典中的所有值
info={"name":"Junee","age":23,"sex":"female"} print(info.values()) dict_values(['Junee', 23, 'female'])
7、dict.items()
返回可遍历的(键, 值) 元组数组。
info={"name":"Junee","age":23,"sex":"female"} print(info.items()) dict_items([('name', 'Junee'), ('age', 23), ('sex', 'female')])
五、合并
1、dict.update(dict2)
- dict2 -- 添加到指定字典dict里的字典
注意:如果两个字典中有相同的key值,d1的值会被d2的值覆盖
d1={"name":"Junee","age":23,"sex":"female"} d2={"name":"Woo","age":33} d3={"sex":"male"} d1.update(d2) print(d1) #输出结果 {'name': 'Woo', 'age': 33, 'sex': 'female'}#相同的key值被新value覆盖 d2.update(d3) print(d2) {'name': 'Woo', 'age': 33, 'sex': 'male'}
2、dict(d1, **d2)
注意:如果两个字典中有相同的key值,d1的值会被d2的值覆盖
d1={"name":"Junee","age":23,"sex":"female"} d2={"name":"Woo","age":33} d3={"sex":"male"} d4=dict(d1,**d2) d5=dict(d2,**d3) print(d4) print(d5) {'name': 'Woo', 'age': 33, 'sex': 'female'} {'name': 'Woo', 'age': 33, 'sex': 'female'}
3、dict(list(d1.items())+list(d2.items()))
- list(d1.items())获取字典的键值对的列表
- list(d1.items()) + list(d2.items())拼成一个新的列表
- dict(list(d1.items())+list(d2.items()))将合并成的列表转变成新的字典
注意:如果两个字典中有相同的key值,d1的值会被d2的值覆盖
d1={"name":"Junee","age":23,"sex":"female"} d2={"name":"Woo","age":33} d3={"sex":"male"} d6=dict(list(d2.items())+list(d3.items())) print(d6) {'name': 'Woo', 'age': 33, 'sex': 'male'}
4、字典的常规处理方法
d1={"name":"Woo","age":33} d2={"sex":"male"} d3={} for k,v in d1.items(): d3[k]=v for k,v in d2.items(): d3[k]=v print(d3) {'name': 'Woo', 'age': 33, 'sex': 'male'}
5、dict.fromkeys(seq[, value])
- seq -- 字典键值列表。
- value -- 可选参数, 设置键序列(seq)的值。
Python 字典 fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
seq=("name","age","height") d1=dict.fromkeys(seq) d2=dict.fromkeys(seq,10) print(d1) print(d2) {'name': None, 'age': None, 'height': None} {'name': 10, 'age': 10, 'height': 10}
Mark on 2018.04.13