python中字典是一种键值对的形式存储数据(键的要求是不可变数据类型(数字、字符串、元组),并且不能重复出现
),例dict1 = {'a': 'A', 'b': 'B'}
键值用:
分开,对与对之间用,
分开
一、字典的添加
#创建空字典
dict1 = {}
dict1['a'] = 'A' # dict1 = {'a': 'A'}
dict1['b'] = 'B' #dict1 = {'a': 'A', 'b': 'B'}
#还有个dict.setdefault(key,default=None) 添加一个键值对,如果键已经存在,则不添加,如果不存在,添加一个键值对 值default 默认是None
dict1.setdefault('c', 'C') #dict1 = {'a': 'A', 'b': 'B', 'c': 'C'}
二、字典的修改
#修改字典 修改就是在他原来值的数据上面覆盖一个新的数据
dict1 = {'a': 'A', 'b': 'B'}
dict1['a'] = 'AA' #dict1 = {'a': 'AA', 'b': 'B'}
dict1['c'] = 'CC' #dict1 = {'a': 'AA', 'b': 'B', 'c': 'CC'} 如果想修改的那个不存在 则成了添加
三、字典的删除
1.del 删除,无返回值
# del 删除
dict1 = {'a': 'AA', 'b': 'B', 'c': 'CC'}
del dict1['a'] #dict1 = {'b': 'B', 'c': 'CC'} 删除dict1 以a为键的键值对
del dict1['a'] #如果要删除的键不存在 则会报错KeyError
del dict1 #如果是del 字典名字,则直接删除了字典
2.pop删除,有返回值
#pop删除
dict1 = {'a': 'AA', 'b': 'B', 'c': 'CC'}
a = dict1.pop('a') # 返回键为‘a’的对应的值 print(a) a = 'AA' dict1 = {'b': 'B', 'c': 'CC'}
randkey = dict1.popitem() # 删除最后一对键值对 并以元组的形式返回键跟值 randkey = ('c', 'CC') dict1 = {'b': 'B'}
3.clear() 清空字典
#clear() 清空字典
dict1 = {'a': 'AA', 'b': 'B', 'c': 'CC'}
dict1.clear() # dict1 = {}
四、字典的合并
方法1:
#字典的合并
dict1 = {'a': 'A', 'b': 'B', 'c': 'C'}
dict2 = {'a': 'AA', 'd': 'D', 'e': 'E'}
# 如果在遇到两个字典里面有同样的键的时候 要注意保留那个就放到后面要添加的位置。
dict1.update(dict2) # 把dict2 添加到dict1里面 dict1 = {'a': 'AA', 'b': 'B', 'c': 'C', 'd': 'D', 'e': 'E'}
dict2.update(dict1) # 把dict1 添加到dict1里面 dict1 = {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'D', 'e': 'E'}
方法2:
#字典的合并2
dict1 = {'a': 'A', 'b': 'B', 'c': 'C'}
dict2 = {'a': 'AA', 'd': 'D', 'e': 'E'}
dict3 = dict(**dict1, **dict2) # dict3 = {'a': 'AA', 'b': 'B', 'c': 'C', 'd': 'D', 'e': 'E'} 跟上面的一样 放到后面的重复键的值能保留下来
五、其他常用方法
常用的有 dict.keys(),dict.values(),dict.items()
返回一个可迭代的对象,key in dict,key in dict.keys(),value in dict.values()
返回布尔值
dict1 = {'a': 'A', 'b': 'B', 'c': 'C'}
# dict.keys() 返回一个字典的key值的可迭代对象
print(dict1.keys()) # dict_keys(['a', 'b', 'c'])
# dict.values() 返回一个字典的value值的可迭代对象
print(dict1.values()) # dict_values(['A', 'B', 'C'])
# dict.items() 返回一个可遍历的(键, 值)元组的数组
print(dict1.items()) # dict_items([('a', 'A'), ('b', 'B'), ('c', 'C')])
# 上面三个都能用list()转换成列表
# key in dict key in dict1.keys() value in dict1.values() 这些都可用作判断
'a' in dict1 # True 如果是 ‘A’ in dict1 明显dict1中没有键是'A'的,则返回 False
# dict.copy() 浅拷贝 就先当他是复制一个dict 有关赋值 浅拷贝 深度拷贝的区别下次再聊