Python学习笔记之字典
一、创建和使用字典
1、创建字典
phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'}
2、dict,通过映射创建字典
>>> items=[('name','Gumby'),('age',34)]
>>> d=dict(items)
>>> d
显示:{'name':'Gumby','age':'34'}
dict,通过关键字创建字典
>>> d=dict(name='Gumby',age=34)
>>> d
显示:{'name':'Gumby','age':'34'}
3、字典格式化字符串
>>> phonebook{'Beth':'9102','Alice':'2334','Cecil','3258'}
>>> "Cecil's phone number is %(Cecil)s." % phonebook
显示:"Cecil's phone number is 3258"
4、clear,清除字典中的全部项
5、copy,返回一个具有相同键-值对的新字典,这个方法实现的是浅复制
>>>x={'username':'admin','machines':['foo','bar','baz']}
>>>y=x.copy()
>>>y['username']='mlh'
>>>y['machines'].remove('bar')
>>>y
显示:{'username':'mlh','machines':['foo','baz']}
>>>x
显示:{'username':'admin','machines':['foo','baz']}
注意两个结果的区别:在副本y中替换username的值不会改变x中的值,但是修改副本y中的machines的值,则会改变x中的值
deepcopy,深度复制,可以解决上面的问题
>>> from copy import deepcopy
>>> d={}
>>> d['names']=['Alfred','Bertrand']
>>> c=d.copy()
>>> dc=deepcopy(d)
>>> d['names'].append('Clive')
>>> c
显示:{'names':['Alfred','Bertrand','Clive']}
>>> dc
显示:{'names':['Alfred','Bertrand']}
6、fromkeys,使用给定的键建立新的字典
>>> {}.fromkeys(['name','age'])
显示:{'name':None,'age':None}
采用dict的方法创建字典
>>> dict.fromkeys(['name','age'],'(123)') #默认值是可选的
显示:{'name':'123','age':'123'}
7、get,用来访问字典项
>>> d={}
>>> print(d['name']) #此时会报错,说name键不存在
>>>print(d.get('name')) #此时不会报错,输出None
>>> print(d.get('name','N/A')) #还可以指定默认值
8、has_key,检查字典中是否含有指定的键,在V2.6之后,V3.0之前有用,
>>> d={}
>>> d.has_key('name')
显示: False
从V3.0开始,采用in的方式判断
>>> 'name' in d
显示:False
9、items,返回一个迭代器对象
>>> d={'title':'Python Web Site','url':'http://www.python.org','spam':0}
>>> d.items()
显示:dict_items([('url','http://www.python.org'),('title','Python Web Site'),('spam',0)])
10、pop,将指定的键-值对从字典中删除
>>> d={'x':1,'y':2}
>>> d.pop('x')
显示:1
>>> d
显示:{'y':2}
11、popitem,弹出随机项
12、setdefault,在某种程度上类似于get,并且还能在字典中不含有给定键的情况下设定相应的键值
>>> d={}
>>> d.setdefault('name','N/A')
显示:'N/A'
>>> d
显示:{'name','N/A'}
>>> d['name']='Gumby'
>>> d.setdefault('name','N/A')
显示:'Gumby'
>>> d
显示:{'name':'Gumby'}
13、update,可以利用一个字典更新另一字典
>>> d={
'title':'Python Web Site',
'url':'http://www.python.org',
'changed':'Mar 14 22:09:15 MET 2008'
}
>>> x={'title':'Python Language WebSite'}
>>> d.update(x)
>>> d
显示:
{
'title':'Python Language Website',
'url':'http://www.python.org',
'changed':'Mar 14 22:09:15 MET 2008'
}
14、Values,返回值的迭代器
>>> d={}
>>> d[1]=1
>>> d[2]=2
>>> d[3]=3
>>> d[4]=1
>>> d.values()
显示:dict_values([1,2,3,1])
Python学习笔记之字典的更多相关文章
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- 【Python学习笔记】字典操作
字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...
- Python学习笔记四--字典与集合
字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...
- python学习笔记八——字典的方法
4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"appl ...
- python学习笔记七——字典
4.3 字典结构 字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用. 4.3.1 字典的创建 字典由一系列的“键-值”(key-value)对组成,“ ...
- python学习笔记(字典乱码)
博主总结下 python中字典中包含中文时,使用过程中出现乱码 json.dumps(params, encoding="UTF-8", ensure_ascii=False) p ...
- Python学习笔记3(字典)
创建字典 dict函数 字典的格式化字符串 字典方法 clear copy fromkeys 序列是一个按照一定顺序将值进行组织的数据结构形式,可以通过索引对其进行征引.另外还有一种数据结构是通过名字 ...
- python学习笔记(6)——字典(Dictionary)
dict= {key1 : value1, key2 : value2 ...} 关键词:字典中元素成对出现- key:value 格式- 两端{ } ,键:值,每对键值间用 ,隔开. 键key-唯一 ...
- python学习笔记(三)---字典
字典 在Python中,字典 字典 是一系列键 键-值对 值对 .每个键 键 都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将 任何Py ...
随机推荐
- PXC(percona xtradb cluster)新加节点避免SST的方法
环境: node1:192.168.0.100 pxc节点 node2:192.168.0.101 新节点 把新加入的节点先建立为node1的从库,可以使用mysqldump或innobackup ...
- centos搭建属于自己wordpress网站
1.在centos7中安装好mysql5.7.16.httpd.php.php-mysql工具 这里的mysql可以用yum一键安装,他可以自己解决依赖问题 [root@localhost ~]# y ...
- Latex环境安装
安装latex环境 sudo apt-get install texlive-full 推荐使用texstudio编辑器,简单方便高效靠谱 sudo apt-get install texstudio ...
- mysql安装和mysql图形界面安装以及文本文件导入mysql
本人大一大二一直使用windows系统,被微软爸爸给惯坏了,一看到cmd命令行就吓尿.现在用ubuntu,每一个操作都是语句,也是得到锻炼(个jb). ubuntu安装mysql和python代码 s ...
- 连接MySQL错误:Can't connect to MySQL server (10060)
问题原因: 导致些问题可能有以下几个原因: 1.网络不通: 2.服务未启动: 3.防火墙端口未开放: ----防火墙端口未开放的可能性比较大
- Xcode6 ADD Copy Files Build Phase 是灰色的
在学习的怎样写frameWork的时候,查看一个教程How to Create a Framework for iOS [一个中文翻译 创建自己的framework] 其中一个步骤就是添加一个Cop ...
- C#委托,事件理解入门 (译稿)
原文地址:http://www.codeproject.com/Articles/4773/Events-and-Delegates-Simplified 引用翻译地址:http://www.cnbl ...
- java.lang.ExceptionInInitializerError /NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition;
java.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nati ...
- 从C++到GO
从C++到GO 刚开始接触Go语言,看了两本Go语言的书,从c++开发者的角度来看看go语言的新特性,说下自己感触较深的几点: 并发编程 Go语言层面支持协程,将并发业务逻辑从异步转为同步,大幅提高开 ...
- html在一个页面显示另一个页面的部分内容
老板今天让在网站上面显示实时监控画面,研究了一早,找了个简单的方法 先把监控分享在网上(我使用的海康威视摄像头,分享到萤石直播http://square.ys7.com/square/index.js ...