概念:是一种无序的可变集合,用于存储键值对。
特点:
dict1 = {}
dict1 = dict() # 传参原则:能转为键值对形式;参数: **kwarg
# 例子:
dict1 = dict(name = "张三",age = 12)
print(dict1) # {'name': '张三', 'age': 12}
字典是一个键值对的容器,所以可以进行各种操作;
dict名[key] =value | 通过key 直接赋值value; --- 也具有改的功能 |
方法 | 作用 |
---|---|
dict1.update( **keywords) | 通过key修改value数据 ---- 也具有增的功能 注意:? key不要添加引号! |
dict1 = dict(name = "张三",age = 12)
dict1.update(haha ='嘿嘿') #修改方法实现了新增操作!
print(dict1) # {'name': '张三', 'age': 12, 'haha': '嘿嘿'}
方法 | 作用 |
---|---|
pop(key) | 删除key对应的键值对; |
popitem() | 删除当前顺序的最后一个键值对; 返回被弹出的元素; |
clear() | 清空字典; |
关键字 | 作用 |
del 字典名[key] | del 关键字 :删除k-v对; 例: del dict1[key]? ?删除k-v对 ;? del dict1 销毁字典 |
方法? ? ? ? | 作用 |
---|---|
get(key [,defaultVal ]) | 通过key获取value;? 注意: key不存在,不会抛异常,还可以设置默认值返回; |
items() | 返回一个(key,value)元组的列表形式;? --- 见下面案例! 类型:<class 'dict_items'>? 字典视图对象 |
keys() | 返回字典的所有的key ; 类型为?<class 'dict_keys'> 字典key对象?? |
values() | 返回字典的所有的value; 类型为?<class 'dict_values'> 字典value对象 |
下标访问 | 作用 |
value = dic[key] | 通过下标key返回value;? 注意:key不存在,抛异常。 |
dict1 ={'c': '11', 'b': 22, 'a': '嘿嘿'}
res = dict1.items()
# items的返回类型是dict_items -- 字典视图对象
print(res) # dict_items([('c', '11'), ('b', 22), ('a', '嘿嘿')])
print(type(res)) #<class 'dict_items'>
print(type(res) is list) # False
print(dict1.keys()) # dict_keys(['c', 'b', 'a'])
print(type(dict1.keys())) # <class 'dict_keys'>
print(dict1.values()) # dict_values(['11', 22, '嘿嘿'])
print(type(dict1.values())) # <class 'dict_values'>
方法 | 作用 |
---|---|
dict1.copy() | 实现复制;返回 新的 字典; --- 浅拷贝 |
dict2 = dict1? | 直接赋值方式 :实现了copy , ---- 浅拷贝 |
setDefault(key ,defaultVal ) | 添加k-v,设置默认值; |
关键字 | 作用 |
key in? dict1 | 判断key 是否在 字典中 , 返回 bool值 |
? Python3有copy内置模块:可以实现复制?
copy.copy(obj) | 浅拷贝 |
copy.deepcopy(obj) | 深拷贝 |
使用for循环遍历:
dict1 = {'b': 22, 'a': 11, 'c': 33}
for item in dict1:
# key 是 item ,value 是 dict1[item]
print(item, " --- ", dict1[item]);
## b --- 22
## a --- 11
## c --- 33
dict1 = {'b': 22, 'a': 11, 'c': 33}
for item in dict1.items():
print(item[0],item[1]);