DAY 012--dict(增、删、改、查、合并)

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

原文地址:https://www.cnblogs.com/JunSheep/p/8778132.html