【python学习笔记】4.字典:当索引不好用时
【python学习笔记】4.字典:当索引不好用时
字典是python中唯一内建的map类型
创建:
key可以为任何不可改变的类型,包括内置类型,或者元组,字符串
通过大括号:
phonebook={'alice': '2341', 'beth':'9102'}
通过dict函数
键值对列表做参数
>>> items=[("name", "Gumby"), ("age", 42)]
>>> dict(items)
{'age': 42, 'name': 'Gumby'}
键值对参数
>>> d = dict(name="Gumby", age=42)
>>> d
{'age': 42, 'name': 'Gumby'}
基本字典操作
- len(d) 键值对个数
- d[k] 取值
- d[k]=v 修改value
- del d[k],删除键为k的项
- k in d,是否存在键为k的项
格式化字符串 %(key)type
>>> phonebook={"beth":"9102", "alice":"2341"}
>>> print "%(beth)s" % phonebook
9102
>>>
字典方法
- clear:清除所有项,原地操作,无返回
- copy:返回一个具有相同键值对的新字典,这里实现的是浅复制,copy.deepcopy 可以实现深复制
>>> x={"username":"admin", "machines":["foo", "bar", "baz"]}
>>> x
{'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
>>> y=x.copy()
>>> y
{'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
>>> y["username"]="mlh"
>>> y["machines"].remove("bar")
>>> y
{'username': 'mlh', 'machines': ['foo', 'baz']}
>>> x
{'username': 'admin', 'machines': ['foo', 'baz']}
>>> import copy
>>> z=copy.deepcopy(x)
>>> z
{'username': 'admin', 'machines': ['foo', 'baz']}
>>> z["machines"].remove("foo")
>>> z
{'username': 'admin', 'machines': ['baz']}
>>> x
{'username': 'admin', 'machines': ['foo', 'baz']}
>>>fromkeys:使用给定的key建立新字典,每个key对应的默认值为None
>>> {}.fromkeys(["name", "age"])
{'age': None, 'name': None}
>>>
>>> dict.fromkeys(["name", "age"], "(unkonwn)")
{'age': '(unkonwn)', 'name': '(unkonwn)'}
>>>get 安全访问字典,当key不存在的时候返回None
>>> a={}
>>> a['a']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'a'
>>> print a.get("a")
None
>>>has_key 返回key是否存在
items和iteritems,以列表形式返回字典中的项,列表中的元素为字典中的项,iteritems会返回一个迭代器
keys和iterkeys,以列表形式返回字典中key
pop,获取给定key的值,然后从字典中移除
popitem,弹出一个项
setdefault,获取给定key的值,如果没有则设置并返回默认值
update 参数字典中项会被添加到旧字典中,若有相同的key则进行覆盖
values和itervalues 以列表的形式返回字典中值
【python学习笔记】4.字典:当索引不好用时的更多相关文章
- 字典:当索引不好用时2 - 零基础入门学习Python026
字典:当索引不好用时2 让编程改变世界 Change the world by program 上节课我们学习到在一些情况下,比序列更实用的映射类型:字典.我们知道字典也有个关键符号就是大括号(也叫花 ...
- 字典:当索引不好用时 - 零基础入门学习Python025
字典:当索引不好用时 让编程改变世界 Change the world by program 有天你想翻开牛津字典,查找"sadomasochism[ˌseɪdoʊ'mæsəkɪzəm]&q ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- python学习笔记七——字典
4.3 字典结构 字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用. 4.3.1 字典的创建 字典由一系列的“键-值”(key-value)对组成,“ ...
- Python学习笔记四--字典与集合
字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...
- python学习笔记八——字典的方法
4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"appl ...
- Python学习笔记3(字典)
创建字典 dict函数 字典的格式化字符串 字典方法 clear copy fromkeys 序列是一个按照一定顺序将值进行组织的数据结构形式,可以通过索引对其进行征引.另外还有一种数据结构是通过名字 ...
- python学习笔记(6)——字典(Dictionary)
dict= {key1 : value1, key2 : value2 ...} 关键词:字典中元素成对出现- key:value 格式- 两端{ } ,键:值,每对键值间用 ,隔开. 键key-唯一 ...
- Python学习笔记之字典
一.创建和使用字典 1.创建字典 phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} 2.dict,通过映射创建字典 >>> ...
- 【Python学习笔记】字典操作
字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...
随机推荐
- STL源码剖析之序列式容器
最近由于找工作需要,准备深入学习一下STL源码,我看的是侯捷所著的<STL源码剖析>.之所以看这本书主要是由于我过去曾经接触过一些台湾人,我一直觉得台湾人非常不错(这里不涉及任何政治,仅限 ...
- windows上nginx的安装和配置
http://www.cnblogs.com/Li-Cheng/p/4399149.html http://www.cnblogs.com/huayangmeng/archive/2011/06/15 ...
- C语言_结构体变量指针做函数参数的使用案例
# include <stdio.h> # include <stdlib.h> # include <string.h> # include <malloc ...
- PHP开发中多种方案实现高并发下的抢购、秒杀功能
抢购.秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 对于第一个问题,已经很容易想到 ...
- javascript 函数详解
一.函数的一些基础概念: 1.js中的函数使用function来声明. 2.关于return: 2.1 函数在执行到return语句后悔立即停止并退出,return后面的代码永远不会得到执行: 2. ...
- 将DataSet转化成XML格式的String类型,再转化回来。
/// <summary> /// 获取DataSet的Xml格式 /// </summary> public static string GetDataSetXml(this ...
- MySQL SQL语句分析查询优化
如何获取有性能问题的SQL 1.通过用户反馈获取存在性能问题的SQL 2.通过慢查询日志获取性能问题的SQL 3.实时获取存在性能问题的SQL 使用慢查询日志获取有性能问题的SQL 首先介绍下慢查询相 ...
- 【linux之挂载,Raid,LVM】
一.挂载,卸载 挂载:将新的文件系统关联至当前根文件系统卸载:将某文件系统与当前根文件系统的关联关系移除 cat /etc/mtab 存储着已经挂载的文件系统 (跟 mount 一样) mount:显 ...
- python3写入csv多一个空行
今天用python3 写入csv 总是多一个空行,查阅python3文档,发现有一个参数可以设置.特此记录一下. with open('file.csv','a',newline='') as csv ...
- Errors running buider 'DeploymentBuilder' on project 'HFMS'
1.错误描述 2.错误原因 HFMS项目不是利用MyEclipse创建的,但是用MyEclipse打开的 3.解决办法 (1)关闭MyEclipse,找到HFMS项目,删除"com.genu ...