1. 添加字典元素

1.1 直接添加
a1 = {'人才':60,'英语':'english','adress':'here'}
print(a1) # {'人才': 60, '英语': 'english', 'adress': 'here'}
#添加方法一:根据键值对添加
a1['价格'] = 100
print(a1) # {'人才': 60, '英语': 'english', 'adress': 'here', '价格': 100}
1.1 使用update方法
book_dict = {"price": 500, "bookName": "Python设计", "weight": "250g"}

# 说明:使用dict的update()方法,为其传入一个新的dict对象,key不存在则是添加元素!(如果这个新的dict对象中的key已经在当前的字典对象中存在了,则会覆盖掉key对应的value
book_dict.update({"country": "china"}) 

# 使用update()方法,参数为关键字参数
book_dict.update(temp = "无语中", help = "帮助")

# 使用update()方法,参数为字典解包方式
my_temp_dict = {"name": "王员外", "age":18}
book_dict.update(**my_temp_dict)

# 等同于
book_dict.update(name="王员外",age=18) 

2. 字典删除元素4种方法

2.1 clear()方法(删除字典内所有元素)
dict = {'name': 'aabbcc', 'pwd': '123', 'url': 'http://baidu.com'}
dict.clear();  # 清空词典所有条目
2.2 pop()方法(删除字典给定键 key 所对应的值,返回值为被删除的值)
dict = {'name': 'aabbcc', 'pwd': '123', 'url': 'http://baidu.com'}
new_dict=dict.pop('name') # 删除要删除的键值对,如{'name':'aabbcc'}这个键值对
2.3 popitem()方法(随机返回并删除字典中的一对键和值)

字典popitem()方法作用是:随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()方法效率很高。

>>> x
{'url': 'www.iplaypy.com', 'title': 'python web site'}
>>> x.popitem()
('url', 'www.iplaypy.com')
>>> x
{'title': 'python web site'}
2.4 使用 items() 移除

字典popitem()方法作用是:随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()方法效率很高。

test_dict = {"Runoob" : 1, "Google" : 2, "Taobao" : 3, "Zhihu" : 4} 
  
# 输出原始的字典
print ("字典移除前 : " + str(test_dict)) 
  
# 使用 pop 移除 Zhihu
new_dict = {key:val for key, val in test_dict.items() if key != 'Zhihu'} 
    
# 输出移除后的字典
print ("字典移除后 : " + str(new_dict))


字典移除前 : {'Runoob': 1, 'Google': 2, 'Taobao': 3, 'Zhihu': 4}
字典移除后 : {'Runoob': 1, 'Google': 2, 'Taobao': 3}
2.5 del 全局方法(能删单一的元素也能清空字典,清空只需一项操作)
dict = {'name': 'aabbcc', 'pwd': '123', 'url': 'http://baidu.com'}
del dict['name'] # 删除键是'name'的条目 
del dict  # 清空字典所有条目 

3 字典复制copy(),返回一个字典的浅复制

dict1 =  {'user':'runoob','num':[1,2,3]} 
dict2 = dict1          # 浅拷贝: 引用对象
dict3 = dict1.copy()   # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用
 
# 修改 data 数据
dict1['user']='root'
dict1['num'].remove(1)
 
# 输出结果
print(dict1)
print(dict2)
print(dict3)

{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'runoob'}

4. python字典的遍历

# keys() 该方法会返回字典的所有的key
#   该方法会返回一个序列,序列中保存有字典的所有的键
d = {'name': 'aabbcc', 'pwd': '123', 'url': 'http://baidu.com'}
print(d.keys())
# 通过遍历keys()来获取所有的键
for k in d.keys() :
    print(k , d[k])
# values() 该方法会返回字典的所有的key
# 该方法会返回一个序列,序列中保存有字典的所有的值
d = {'name': 'aabbcc', 'pwd': '123', 'url': 'http://baidu.com'}
for v in d.values():
    print(v)
# items() 该方法会返回字典中所有的项
# 该方法会返回字典中所有的项
# 它会返回一个序列,序列中包含有双值子序列
# 双值分别是,字典中的key和value
d = {'name': 'aabbcc', 'pwd': '123', 'url': 'http://baidu.com'}
print(d.items())
for k,v in d.items():
    print(k, '=', v)