Python字典学习笔记(持续更新)
                    目录
                    
                
                
            - 
更多分享:http://www.catbro.cn
 - 
- 字典是Python中唯一内建的映射类型,字典中的值没有特殊的顺序,但是都存储在一个特定的键(Key)里面,键可以是数字、字符串甚至元组
 
 
字典构造方法
- 
1、dict函数创建字典
d = dict([('name','xiaoming'),('age',10)]) d = dict(name='xiaoming',age=10) d = dict() 
字典的基本操作
- 字典的基本行为在很多方面与序列类型:
 - 1、len(d):返回d中项(键值对)的数量
 - 2、d[k]:返回关联到键k上的值
 - 3、d[k]=v:将值v关联到键k上
 - 4、del d[k]:删除键为k的项
 - 5、k in d:检查d中是否有含有键为k的项
 
字典的格式化输出
- %(key)
 
字典的方法
- 
1、clear:clear方法清除字典中所有的项
 - 
2、copy:返回一个具有相同键值对的新字典(浅复制)
d1 = {'name':'admin','skill':['java','C','Python']} d2 = d1.copy(); d2['name'] = 'user'; del d2['skill'][0]; print(d1) : {'name': 'admin', 'skill': ['C', 'Python']} print(d2) :{'name': 'user', 'skill': ['C', 'Python']} 可以看到,当替换副本中的值时,原字典不受影响,如果替换的值为对象时,就会受影响了,应为拷贝时为前拷贝,值并没有拷贝,而是直接使用。 - 
避免问题方法:
 - 
1、使用深复制(deep copy),使用copy模块的deepcopy函数实现
from copy import deepcopy; d1 = {'name':'admin','skill':['java','C','Python']} d2 = deepcopy(d1); d2['name'] = 'user'; del d2['skill'][0]; print(d1) : {'name': 'admin', 'skill': ['java', 'C', 'Python']} print(d2) : {'name': 'user', 'skill': ['C', 'Python']} - 
3、fromkeys:使用给定的key建立新的字典,但是对应的值均为None
d = dict().fromkeys(['name','skill']) print(d) : {'name': None, 'skill': None} - 
4、根据key访问字典中的项
 - 
使用d[key]也可以访问字典中的项,当key不存在时,会报错
 - 
使用d.get(key) 时如果项不存在,会返回None
 - 
d.get(key,默认值),其提供了在项不存在时返回默认值的可以参数
 - 
5、items:返回项的迭代器。可用for进行遍历
d1 = {'name':'admin','skill':'java'} print(d1.items()) : dict_items([('name', 'admin'), ('skill', 'java')]) - 
6、items:返回key值迭代器。可用for进行遍历
d1 = {'name':'admin','skill':'java'} print(d1.keys()) : dict_keys(['name', 'skill']) - 
7、pop:获取给定key的值,并将该项从字典中移除
 - 
8、popitem:类似list.pop(),但是字典弹出的项是随机的。
 - 
9、setdefault(key,defaultValue):如果key不存在,创建该项并设置值为默认值,并返回,如果key存在,则返回值
d1 = dict(); print(d1); : {} d1.setdefault('name','me'); print(d1); : {'name': 'me'} - 
10、update:用一个字典更新另外一个字典,不存在的会创建并添加,存在的则直接替换
d1 = {'name':'me'} d2={'name':'you','age':18} d1.update(d2) print(d1); : {'name': 'you', 'age': 18} - 
11、values:返回values值迭代器。可用for进行遍历
d1 = {'name':'admin','skill':'java'} print(d1.values()) : dict_values(['admin', 'java'])