数据类型所有方法和使用整理之------字典
print(dir(dict)) 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'
1.增加
s = {'A': 'a', 'B': 'b'} s['C']='c' print(s)
fromkeys() 使用给定的键建立新的字典,键默认对应的值为None
s = dict.fromkeys('A','B') print(s) {'A','B'}
或者指定默认的对应值
s= dict.fromkeys([1,2,3],'u') print(s) {1: 'u', 2: 'u', 3: 'u'}
2.删除
1.clear() 清除字典中的所有项
s = {'A': 'a', 'B': 'b'} s.clear() print(s) {}
2.pop() 删除指定的KEY和他的值
s = {'A': 'a', 'B': 'b'} s.pop('A') print(s) { 'B': 'b'}
3. popitme() 随机删除一个KEY和他的值
s= dict.fromkeys([1,2,3],'u') s.popitem() print(s) {2: 'u', 3: 'u'}
3.修改
1.常规修改
s = {'A': 'a', 'B': 'b'} s['A']='c' print(s) {'A': 'c', 'B': 'b'}
2.update() 用一个字典更新另一个字典
s = {'A': 'a', 'B': 'b'} s1 = {'A':'c'} s.update(s1) # 用S1更新了S中相应KEY的值 print(s)
{'A': 'c', 'B': 'b'}
4.查询
1.一般查询
s = {'A': 'a', 'B': 'b'} print(s['A']) a
2.get() 访问字典成员,可以访问不存在的KEY
s = {'A': 'a', 'B': 'b'} print(s.get('A')) a
若KEY不存在,则返回None
s = {'A': 'a', 'B': 'b'} print(s.get('1')) None
3.setdefault() 创建一个新的KEY和值,如果类表中存在,则返回这个KEY的值
s = {'A': 'a', 'B': 'b'} s.setdefault('C','c') #列表中不存在 print(s) {'A': 'a', 'C': 'c', 'B': 'b'} s = {'A': 'a', 'B': 'b'} print(s.setdefault('A','c')) #列表中存在 a
4.key() 查询字典中所有的key
s = {'A': 'a', 'B': 'b'} print(s.keys()) dict_keys(['A', 'B'])
5.values() 查询字典中所有的value值
s = {'A': 'a', 'B': 'b'} print(s.values()) dict_values(['b', 'a'])
5.其他
copy() 将字典复制,返回一个相同KEY的字典,但其中的值没有被独立。注:在复制的副本中对值进行替换后,对原来的字典不产生影响,但是如果修改了副本,原始的字典也会被修改。deepcopy函数使用深复制,复制其包含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题
1copy
import copy s = {'A': {'a':2}, 'B': 'b','C':33} s1 = s.copy() s2 = copy.deepcopy(s) s['A']['a']=22 print(s) print(s1) print(s2) {'A': {'a': 22}, 'B': 'b', 'C': 33} {'A': {'a': 22}, 'B': 'b', 'C': 33} {'A': {'a': 2}, 'B': 'b', 'C': 33}
注: 不牵扯嵌套的话,直接使用copy就等于了 赋值 或者深copy 列表和字典都一样
2.items() 将字典变为新的元组,单独返回。
s = {'A': 'a', 'B': 'b','C':33} s1= s.items() print(s1) for key,value in s1: # 循环取出 print(key,value) dict_items([('C', 33), ('A', 'a'), ('B', 'b')]) C 33 A a B b