Python学习进程(10)字典
本节介绍Python中的字典:是另一种可变容器模型,且可存储任意类型对象。
(1)字典简介:
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
注意:键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
(2)字典的操作:
包括创建字典、访问字典元素、修改字典的值、删除字典指定元素,删除字典:
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
#1.创建字典:
>>> dic={'name':'MenAngel','age':19,'sex':'男'};
>>> print dic
{'age': 19, 'name': 'MenAngel', 'sex': '\xc4\xd0'}
#2.修改字典中元素
>>> dic['name']='sunjimeng'
#3.访问字典中指定元素
>>> print dic
{'age': 19, 'name': 'sunjimeng', 'sex': '\xc4\xd0'}
>>> dic['name']
'sunjimeng'
>>> dic
{'age': 19, 'name': 'sunjimeng', 'sex': '\xc4\xd0'}
#4.删除字典中指定元素
>>> del dic['sex']
>>> dic
{'age': 19, 'name': 'sunjimeng'}
#5.删除字典中所有元素
>>> dic.clear()
>>> dic
{}
#6.删除字典
>>> del dic
(3)字典键的特性:
注意:字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住:
2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行:
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> dic={'name':'MenAngel','age':19,'name':'sunjimeng'}
>>> dic
{'age': 19, 'name': 'sunjimeng'}
#键可以用数字,字符串,可以用元组
>>> dic[4]=346
>>> dic
{'age': 19, 4: 346, 'name': 'sunjimeng'}
>>> dic[('abc',20)]='sex'
>>> dic
{('abc', 20): 'sex', 'age': 19, 4: 346, 'name': 'sunjimeng'}
#但不能用列表
>>> dic[[20,]]=20
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
(4)字典内置函数或方法:
1)字典内置函数:

#1.第一种字典初始化方式:
>>> dic1={}
>>> dic1['name']='MenAngel';
>>> dic1['age']=20;
>>> dic1['sex']='男';
#2.第二种字典初始化方式
>>> dic2={'name':'MenAngel','age':20,'sex':'男']
>>> dic1
{'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'}
>>> dic2
{'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'}
>>> cmp(dic1,dic2)
0
>>> len(dic1)
3
>>> str(dic1)
"{'age': 20, 'name': 'MenAngel', 'sex': '\\xc4\\xd0'}"
>>> type(dic1)
<type 'dict'>
2)Python字典的内置方法:

>>> dict1={'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'}
>>> dict2=dict1.copy()
>>> list1=dict1.keys()
>>> list2=dict1.values()
>>> dict1.has_key('name')
True
>>> dict1,dict2
({'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'}, {'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'})
>>> list1,list2
(['age', 'name', 'sex'], [20, 'MenAngel', '\xc4\xd0'])
>>> dict1['name']='sunjimeng'
>>> dict1,dict2
({'age': 20, 'name': 'sunjimeng', 'sex': '\xc4\xd0'}, {'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'})
>>> dict1.update(dict2)
>>> dict1,dict2
({'name': 'MenAngel', 'age': 20, 'sex': '\xc4\xd0'}, {'age': 20, 'name': 'MenAngel', 'sex': '\xc4\xd0'})
>>> dict.setdefault('abc','')
20
>>> dict1.setdefault('abc','')
''
>>> dict1.setdefault('abc','')
''
>>> dict1.items()
[('abc', ''), ('name', 'MenAngel'), ('age', 20), ('sex', '\xc4\xd0')]
Python学习进程(10)字典的更多相关文章
- Python学习进程
1周第1天 主要是变量的学习(11月8日) 1.1 python安装(win和linux下)1.2 ipython安装及使用1.3 变量的定义1.4 变量赋值1.5 运算符(赋值.算术.关系.逻辑)1 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- Python学习4(字典的内存分布)
1.字典:是python数据类型之一,字典通过花括号来包含数据项,字典的每个元素由2个部分组成,键:值,字典是根据键来找对应的值. data = {"name": "Et ...
- python学习(10)字典学习,写一个三级菜单程序
学习了字典的应用.按老师的要求写一个三级菜单程序. 三级菜单程序需求如下: 1.深圳市的区--街道--社区---小区4级 2.建立一个字典,把各级区域都装进字典里 3.用户可以从1级进入2级再进入3级 ...
- python 学习笔记 10 -- 正則表達式
零.引言 在<Dive into Python>(深入python)中,第七章介绍正則表達式,开篇非常好的引出了正則表達式,以下借用一下:我们都知道python中字符串也有比較简单的方法, ...
- Python学习进程(12)模块
模块让你能够有逻辑地组织你的Python代码段. (1)python模块: 模块化的好处: 1.把相关的代码分配到一个模块里能让你的代码更好用,更易懂. 2.模块也是Python对象, ...
- Python学习进程(3)Python基本数据类型
本节介绍在Python语法中不同的变量数据类型. (1)基本数据类型: >>> a=10; >>> b=10.0; >>> c=T ...
- Python学习笔记之字典
一.创建和使用字典 1.创建字典 phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} 2.dict,通过映射创建字典 >>> ...
- python学习笔记10(Python的内存管理)
用这张图激励一下自己,身边也就只有一位全栈数据工程师!!! 32. Python的内存管理 1. 对象的内存使用 对于整型和短字符串对象,一般内存中只有一个存储,多次引用.其他的长字符串和其他对象 ...
随机推荐
- zookeeper安装笔记
安装zookeeper,将zookeeper上传到三个服务器,保存在/usr/local/zookeeper目录下,解压tar包 tar -xzvf zookeeper-3.4.6.tar.gz 进入 ...
- 基于JS实现回到页面顶部的五种写法(从实现到增强)
这篇文章主要介绍了基于JS实现回到页面顶部的五种写法(从实现到增强)的相关资料,本文介绍的非常详细,实用性也非常高,非常具有参考借鉴价值,需要的朋友可以参考下 写法 [1]锚点 使用锚点链接是一种 ...
- important——》sql server 2000安装图解
MS Sql Server 2000包含两个部分:服务器组件和客户端工具,其中服务器组建是以Windows服务的方式运行的,有四种服务分别是:MSSqlServer.Distributed Trans ...
- chrono
时间段的表示 tmplate<class Rep,class Period=ratio<1>> class duration; duration类被用来表示时间段的计量器,Re ...
- Eclipse 查找
Eclipse 查找 工作空间中查找 Eclipse 查找对话框中可以允许用户在指定工作空间上使用单词或字母模式来查找文件. 或者你可以在指定项目或在 package explorer 视图上选择好指 ...
- python django -7 Git与项目
git的使用,主要包括: 本地仓库的命令 远程仓库的命令 项目需求.页面.模型类的设计,及页面的使用 Git简介 Git是目前世界上最先进的分布式版本控制系统 安装 sudo apt-get inst ...
- OpenCV学习笔记十七:opencv_bioinspired模块
一,简介: 该库是基于仿生学的图像/视频处理库,目前包含模拟人类视网膜的算法.
- cocos2d-x 游戏优化方案
优化的方案: 引擎底层优化.纹理优化.渲染优化.资源缓存.内存优化. 纹理优化: cocos2d-x 底层是OPenGL ES实现的. 对于图案片载入的内存是2的幂次方. 使用的图片是100*128 ...
- [转]JavaWeb之 Servlet执行过程 与 生命周期
https://www.cnblogs.com/vmax-tam/p/4122105.html Servlet的概念 什么是Servlet呢? Java中有一个叫Servlet的接口,如果一个普通的类 ...
- Kotlin——初级篇(二):变量、常量、注释
在Kotlin中的变量.常量以及注释多多少少和Java语言是有着不同之处的.不管是变量.常量的定义方式,还是注释的使用.下面详细的介绍Kotlin中的变量.常量.注释的使用.以及和Java的对比. 如 ...