python学习笔记(4) 字典
来源:互联网 发布:sql中in怎么优化 编辑:程序博客网 时间:2024/06/15 04:53
本篇主要记录学习使用字典的笔记。
列表、元组和字符串等均是通过编号进行引用,而对于通过名字引用值的数据结构,则为映射,字典是Python里唯一内建的映射类型。
字典中的值并没有特殊的顺序,都存储在一个特定的键(Key)里,键可以是数字、字符串甚至是元组。
1 创建字典
(1)直接创建
>>> phonebook={'faith':'1852','Alice':'2341'}
每个键和它的值之间用冒号隔开,项之间用逗号隔开,整个字典由一对大括号括起来,空字典为{}
(2) dict函数
>>> items=[('name','Gumby'),('age',42)]>>> items[('name', 'Gumby'), ('age', 42)]>>> d=dict(items)>>> d{'age': 42, 'name': 'Gumby'}>>>
也可以通过关键字参数来创建字典:
>>> d=dict(name='gg',age=42)>>> d{'age': 42, 'name': 'gg'}>>>
2 字典的基本操作
>>> d=dict(name='gg',age=42)>>> d{'age': 42, 'name': 'gg'}>>> len(d)2>>> d['age']42>>> d['age']='55'>>> d{'age': '55', 'name': 'gg'}>>> 'age' in dTrue>>> '55' in dFalse>>> del d['age']>>> d{'name': 'gg'}>>>
3 字典的格式化字符串
%字符后面加上用圆括号括起来的键,后面再跟上其他说明元素:
>>> 'the year is %(year)s' % d'the year is 2015'>>>
4 字典方法
(1) clear
清除字典中所有的项:
>>> d=dict(name='gg',age=42)>>> d{'age': 42, 'name': 'gg'}>>> y=d>>> y{'age': 42, 'name': 'gg'}>>> y.clear()>>> y{}>>> d{}>>>
注:对于字典的关联 y=d ,当删除其中一个时,另一个同时也被清除了。
(2)copy
copy方法返回一个具有相同键值对的新字典,是浅复制,当在副本中替换值时,原始字典不受影响,但是如果修改了某个值,原始字典会发生变化:
>>> x={'name':'admin','machines':['foo','bar','zoo']}>>> y=x.copy()>>> y['name']='mlh'>>> y['machines'].remove('bar')>>> y{'name': 'mlh', 'machines': ['foo', 'zoo']}>>> x{'name': 'admin', 'machines': ['foo', 'zoo']}>>>
深复制: deepcopy
>>> from copy import deepcopy>>> d={}>>> d['name']=['alice','faith']>>> c=d.copy()>>> dc=deepcopy(d)>>> c{'name': ['alice', 'faith']}>>> dc{'name': ['alice', 'faith']}>>> d['name'].append('MOOM')>>> d{'name': ['alice', 'faith', 'MOOM']}>>> c{'name': ['alice', 'faith', 'MOOM']}>>> dc{'name': ['alice', 'faith']}>>>
(3) fromkeys
使用给定键建立新的字典,每个键默认对应的值为None,当然也可以自定义默认值:
>>> {}.fromkeys(['name','age']){'age': None, 'name': None}>>> {}.fromkeys(['name','age'],'Unknown'){'age': 'Unknown', 'name': 'Unknown'}>>>
(4)get
如果键存在,跟普通的字典查询功能一样,如果键不存在,仍能访问,得到的是None或者是自定义的N/A:
>>> d['name']='Eric'>>> d{'name': 'Eric'}>>> d.get('name')'Eric'>>> d.get('age')>>> d.get('age','N/A')'N/A'>>>
(5) items和iteritems
items方法将所有的字典项以列表的方式返回:
>>> d={'title':'Python','url':'http://www.python.org','spam':0}>>> d{'url': 'http://www.python.org', 'spam': 0, 'title': 'Python'}>>> d.items()[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python')]>>>
iteritems作用相同,但是返回的是一个迭代器:
>>> it=d.iteritems()>>> it<dictionary-itemiterator object at 0x0134D3C0>>>> list(it)[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python')]>>>
多数情况下使用iteritems更高效。
(6)keys和iterkeys
将字典中的键以列表形式返回:
>>> d.keys()['url', 'spam', 'title']>>> d.iterkeys()<dictionary-keyiterator object at 0x0134D360>>>> list(d.iterkeys())['url', 'spam', 'title']>>>
(7) pop
获得对应于给定键的值,并将这个键值对从字典中移除:
>>> d{'url': 'http://www.python.org', 'spam': 0, 'title': 'Python'}>>> d.pop('spam')0>>> d{'url': 'http://www.python.org', 'title': 'Python'}>>>
(8)popitem
随机删除某一键值对项:
>>> d{'url': 'http://www.python.org', 'title': 'Python'}>>> d.popitem()('url', 'http://www.python.org')>>> d{'title': 'Python'}>>>
(9)update
利用一个字典项去更新另一个字典,如果有相同的键则会进行覆盖,否则添加:
>>> d{'title': 'Python'}>>> x={'title':'java'}>>> d.update(x)>>> d{'title': 'java'}>>>> x={'url':'www.python.org'}>>> d.update(x)>>> d{'url': 'www.python.org', 'title': 'java'}>>>
(10)values和itervalues
以列表的形式返回字典中的值(itervalues返回值的迭代器):
>>> d{'age2': 10, 'age1': 10}>>> d.values()[10, 10]>>>
- python学习笔记(4) 字典
- python学习笔记4-字典
- python学习笔记 字典
- python-字典学习笔记
- python字典学习笔记
- Python 学习笔记-字典
- Python学习笔记-字典
- python学习笔记(4)——字典与集合
- python 系统学习笔记(五)---字典
- python 系统学习笔记(五)---字典
- Python学习笔记(一)字典排序
- Python学习笔记(四)生成字典
- python学习笔记6(字典)
- Python学习笔记(16)--字典详解
- python学习笔记(四)字典(dict)
- Python学习笔记(9)- 字典
- python 学习笔记之字典
- Python学习笔记之字典
- IOS 调用系统循环震动
- socket编程
- 如何在 iOS 7 获得导航栏上的模糊和半透明效果?
- C语言指针数组和数组指针
- Android 屏幕适配方案
- python学习笔记(4) 字典
- WebView中实现文件下载功能
- 设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇)
- atitit.it企业管理 项目管理 中的 授权机制 的来源 君权神授 的一定合理性
- 第二章 jQuery技术解密 (六)
- memcmp比较两个C风格字符串
- mac上安装gradle
- Android Studio 简单介绍和使用问题小结
- 第二章 jQuery技术解密 (七)