python数据类型——字典
2015-08-25 14:42
633 查看
引入
没有字典的时候我们可能会这么做:>>> t = ['name', 'age', 'sex'] >>> v = ['chen', 24, 'male'] >>> zip(t,v) [('name', 'chen'), ('age', 24), ('sex', 'male')] >>> v = ['chen', 24] >>> zip(t,v) [('name', 'chen'), ('age', 24)]
也可能会使用列表来存储数据,但是这样不够直观,因为访问的时候都是用下标来进行访问。由此,就产生了字典{}这种数据结构
字典是python种唯一的映射类型(哈希表)
字典的对象是可变的,但是字典的键必须使用不可变的对象,并且一个字典中可以使用不同类型的键值。
keys() 或者values()返回键列表或者值列表。
items()返回包含键值对的元组
创建字典
方法一:{}
>>> dic = {0:0,1:1,2:2} >>> dic[0] 0 >>> dic[2] 2 >>> dic = {0:'00',1:'11',2:'22'} >>> dic[0] '00' >>> dic = {0:'123',name:'chenwen','x':456} Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'name' is not defined >>> name = None >>> dic = {0:'123',name:'chenwen','x':456} >>> name >>> dic {0: '123', 'x': 456, None: 'chenwen'}
注意
上面代码中的,出错信息,意思是,name还没定义,所以之后将name定义之后,才可以顺利创建字典。创建之后,其实是以name的值做键。
并不是创建字典的时候直接定义name的值。
>>> a = 1 >>> b = 2 >>> dic = {a:'aaa','b':'bbb'} >>> a 1 >>> b 2 >>> dic {1: 'aaa', 'b': 'bbb'}
方法二: 使用工厂方法dict()
>>> dict(one=1, two=2) {'two': 2, 'one': 1} >>> dict({'one': 1, 'two': 2}) {'two': 2, 'one': 1} >>> dict(zip(('one', 'two'), (1, 2))) {'two': 2, 'one': 1} >>> dict([['two', 2], ['one', 1]]) {'two': 2, 'one': 1}
方法三: 内建方法:fromkeys()
字典中的元素具有相同的值,默认为None>>> {}.fromkeys(('x','y')) {'y': None, 'x': None} >>> {}.fromkeys(('x','y'),-1) {'y': -1, 'x': -1}
访问字典中的值
>>> dic = {0:'123',name:'chenwen','x':456} >>> for k in dic: ... print k ... 0 x None >>> for k in dic: ... print dic[k] ... 123 456 chenwen
更新和删除
>>> dic = {0:'123',name:'chenwen','x':456} >>> dic['like'] = "DOTA" >>> dic {0: '123', 'x': 456, 'like': 'DOTA', None: 'chenwen'} >>> dic['like'] = "GIRL" >>> dic {0: '123', 'x': 456, 'like': 'GIRL', None: 'chenwen'} >>> del(dic[None]) >>> dic {0: '123', 'x': 456, 'like': 'GIRL'} >>> dic.pop(0) '123' >>> dic {'x': 456, 'like': 'GIRL'} >>> dic.clear() >>> dic {} >>> dic = {0:'123',name:'chenwen','x':456} >>> del(dic) >>> dic Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'dic' is not defined >>> #注意:clear 和del 是不同的,clear只是清空,但是del则是 ... #将整个变量删除,相当于没定义
相关文章推荐
- python练习
- python2.7.10安装配置
- python 流程控制
- Python的列表推导式学习
- windows32位安装MYSQL-python1.2.3
- [python]发送邮件(可带附件+转中文)
- python并行化介绍及使用 Pool
- python菜鸟日记8
- 超算上安装python+HTSeq+numpy+easy_install
- 使用Python实现Hadoop MapReduce程序
- pythonXXX云所有厂商
- python find file
- (转)python 计算代码行数以及相关知识点
- Python并发编程
- 【Python】[进程和线程]多进程,多线程,ThreadLocal,进程VS.线程,分布式进程
- Python中time和datetime模块对时间的操作
- Python 中 datetime时间模块学习
- Python 获取文件信息
- python类实例方法,类方法,类静态方法
- 使用Python的Bottle框架写一个简单的服务接口的示例