『Python』序列学习总结之四——字典
来源:互联网 发布:传奇3地图编辑器源码 编辑:程序博客网 时间:2024/06/07 09:41
1、字典的键可以是任意的不可变类型(如元组,字符串)但键不可为空,None可作为键值,空格不可以
2、如何理解浅复制(copy)和深复制(deep copy)
字典中的可变序列(列表)可被视为容器中的容器,故
①当容器中的容器被赋值为序列时,浅复制中相应的元素不会相应改变。此时相对应的ID不同
②但当容器中的容器中的元素被改变时,浅复制中相应的元素会相应改变。此时相对应的ID相同
如:
from copy import deepcopydict = {1: 111, 2: 222, 3: [1,2,3], 4: [1,2,3]}dict1 = dict.copy()dict2 = deepcopy(dict)print 'dict:',dict,'dict1:',dict1, 'dict2:', dict2print 'dict:',id(dict),'dict1:',id(dict1), 'dict2:', id(dict2)print 'dict键:', id(dict[1]), 'dict1键:', id(dict1[1]), 'dict2键:', id(dict2[1])dict[1] = 333dict[3] = [5,6,7]print 'dict:',dict,'dict1:',dict1, 'dict2:', dict2dict[4][1] = 444print 'dict:',dict,'dict1:',dict1, 'dict2:', dict2print 'dict键:', id(dict[3]), 'dict1键:', id(dict1[3]), 'dict2键:', id(dict2[3])print 'dict键:', id(dict[4]), 'dict1键:', id(dict1[4]), 'dict2键:', id(dict2[4])输出结果:dict: {1: 111, 2: 222, 3: [1, 2, 3], 4: [1, 2, 3]} dict1: {1: 111, 2: 222, 3: [1, 2, 3], 4: [1, 2, 3]} dict2: {1: 111, 2: 222, 3: [1, 2, 3], 4: [1, 2, 3]}dict: 33237872 dict1: 33296432 dict2: 33296720dict键: 32209192 dict1键: 32209192 dict2键: 32209192dict: {1: 333, 2: 222, 3: [5, 6, 7], 4: [1, 2, 3]} dict1: {1: 111, 2: 222, 3: [1, 2, 3], 4: [1, 2, 3]} dict2: {1: 111, 2: 222, 3: [1, 2, 3], 4: [1, 2, 3]}dict: {1: 333, 2: 222, 3: [5, 6, 7], 4: [1, 444, 3]} dict1: {1: 111, 2: 222, 3: [1, 2, 3], 4: [1, 444, 3]} dict2: {1: 111, 2: 222, 3: [1, 2, 3], 4: [1, 2, 3]}dict键: 33274656 dict1键: 33243384 dict2键: 33274576dict键: 33225184 dict1键: 33225184 dict2键: 33272016
1、fromkeys: 使用给定的键建立新的字典,每个键都对应默认的值None,也可给定默认值。
注:建立的是新的字典,跟原字典无关。
2、has_key: 检查字典中是否含有指定的键
3、keys: 以列表形式返回字典中的键
4、values:以列表形式返回字典中的值
5、items: 以列表形式返回字典中的键值对
6、update: 用一个字典更新另一个字典
7、copy: 对字典进行浅复制
8、clear: 清空字典
9、popitem: 随机地移除字典中的键值对
10、get: 访问字典中是否有存在的项,若没有则返回指定的信息
11、setdefault: 当键不存在时,setdefault返回默认值并相应地更新字典,如果键存在则返回与其相应的值。
4、字典方法总结
1、除update、clear外都有返回值
2、has_key返回的是布尔值
3、copy返回的是一个字典
4、由于字典是无序的,所以:
①keys、values、items以及iter*等的方法返回结果都是无序的
②遍历字典的输出结果是无序的
③无法使用如list的append方法等跟位置有关的方法
④popitem弹出随机的项
0 0
- 『Python』序列学习总结之四——字典
- Python--序列学习(四)--字典
- 『Python』序列学习总结之二——元组
- 『Python』序列学习总结之三——字符串
- 『Python』序列学习总结之五 ——列表推导式的一些应用
- 『Python』序列学习总结之六——如何命名规范的变量名
- Python学习笔记(四)——Python数据结构之字符串&字典
- 『Python』序列学习总结之一 ——列表
- Python学习笔记(四)——字典
- Python学习教程(四)——字典
- Python学习笔记(四)—字典(dict)
- Python序列之字典(dict)
- python学习总结--字典
- python学习总结---字典
- 4. Python中的序列——字典
- Python数据结构——序列、字典
- Python学习之字典
- Python学习之字典
- python 根据图片的相似度破解关卡
- 树形dp易错点
- HDU 1875 畅通工程再续(最小生成树)
- 简单工厂模式
- bestcoder题解
- 『Python』序列学习总结之四——字典
- Codeforces 118D Caesar's Legions (dp)
- Android数据存储之文件存储
- 九度oj A+B 1010,1015
- 查看在数据库中实际执行时的解析计划
- COCOS学习笔记--序列帧动画
- 算法:冒泡排序和选择排序
- ZOJ 3203 Light Bulb (三分)
- 论架构师的职责