Python字典 (dict)
作者博文地址:http://www.cnblogs.com/spiritman/
字典是Python语言中唯一的映射类型。字典对象是可变的,它是一个容器类型,支持异构、任意嵌套。
创建字典
语法:{key1:val1,key2:val2,.....}
dict1 = {} #创建空字典
dict2 = {'n1':'liush','n2':'spirit','n3':'tester'}
使用函数dict创建字典
>>>D = dict(name='spititman',age=28,gender='M')
>>>print D
{'gender': 'M', 'age': 28, 'name': 'spititman'}
使用zip和dict创建字典
zip语法:
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
实例展示:
>>>L = zip('xyz','')
>>>print L
[('x', ''), ('y', ''), ('z', '')] >>>L = zip('xyz','','abc')
>>>print L
[('x', '', 'a'), ('y', '', 'b'), ('z', '', 'c')]
################################################################################
>>>D = dict(zip('xyz',''))
>>>print D
{'y': '', 'x': '', 'z': ''} >>>D = dict(zip('xyz','','abc'))
>>>print D
ValueError: dictionary update sequence element #0 has length 3; 2 is required
字典常用操作及实例展示
可以使用dir(dict)查看字典支持的操作方法
clear
功能:清空字典所有元素
语法:D.clear() -> None. Remove all items from D
实例展示:
>>>D = {'n1':'liush','n2':'spirit','n3':'tester'}
>>>D.clear()
>>>print D
{}
copy
功能:浅复制字典。
语法:D.copy() -> a shallow copy of D
实例展示:
>>>D = {'n1':'liush','n2':'spirit','n3':'tester'}
>>>id(D)
140388211911208
>>>D1 = D.copy()
>>>print D1
{'n1': 'liush', 'n2': 'spirit', 'n3': 'tester'}
>>>id(D1)
140388110074776
fromkeys
功能:用于创建一个新字典,以序列S中的元素作为字典的键,v为新字典中所有键对应的初始值,默认为none。
语法:dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.v defaults to None
实例展示:
>>>L = ['spirit','man','liush']
>>>D_L = dict.fromkeys(L)
>>>print D_L
{'liush': None, 'spirit': None, 'man': None}
########################################################
>>>D_L = dict.fromkeys(L,'test')
>>>print D_L
{'liush': 'test', 'spirit': 'test', 'man': 'test'}
get
功能:获取指定键的值
语法:D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>D1 = D.get('n4')
>>>print D1
none #n4不在字典D中,返回默认值none
##########################################################
>>>D2 = D.get('n4','check')
>>>print D2
check #n4不在字典D中,返回指定值check
##########################################################
>>>D3 = D.get('n2')
>>>print D3
spirit #n2在字典D中,返回n2对应的值
##########################################################
>>>D4 = D.get('n2','check')
>>>print D4
spirit #n2在字典D中,指定值无效,依然返回其对应值
has_key
功能:判断字典中是否存在指定键
语法:D.has_key(k) -> True if D has a key k, else False
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>D.has_key('n4')
False
######################################################
>>>D.has_key('n2')
True
items
功能:返回以字典中的键值对组成的元组作为元素的列表
语法:D.items() -> list of D's (key, value) pairs, as 2-tuples
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>L = D.items()
>>>print L
[('n1', 'liushuai'), ('n2', 'spirit'), ('n3', 'tester')]
>>>type(L)
<type 'list'>
iteritems
功能:对以字典中的键值对组成的元组进行迭代,可用于for循环
语法:D.iteritems() -> an iterator over the (key, value) items of D
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>L = D.iteritems()
>>>print L
<dictionary-itemiterator object at 0x7faea6c97158> #生成一个迭代器地址
>>>L.next() #开始迭代
('n1', 'liushuai')
>>>L.next()
('n2', 'spirit')
>>>L.next()
('n3', 'tester')
>>>L.next() #迭代完成后报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
#########################################################################
>>>for i in D.iteritems(): #使用for循环遍历
... print i
18 ...
('n1', 'liushuai')
('n2', 'spirit')
('n3', 'tester')
iterkeys
功能:对字典中的键进行迭代(遍历)
语法:D.iterkeys() -> an iterator over the keys of D
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>L = D.itervalues()
>>>print L
<dictionary-keyiterator object at 0x7faea6c971b0>
>>>L.next()
'n1'
>>>L.next()
'n2'
>>>L.next()
'n3'
>>>L.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
#############################################################
>>>for i in D.iterkeys():
... print i
...
n1
n2
n3
itervalues
功能:对字典中的键进行迭代(遍历)
语法:D.itervalues() -> an iterator over the values of D
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>L = D.itervalues()
>>>print L
<dictionary-valueiterator object at 0x7faea6c97208>
>>>L.next()
'liushuai'
>>>L.next()
'spirit'
>>>L.next()
'tester'
>>>L.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
#############################################################
>>>for i in D.itervalues():
... print i
...
liushuai
spirit
tester
keys
功能:以列表的形式返回所有键
语法:D.keys() -> list of D's keys
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>L = D.keys()
>>>print L
['n1','n2','n3']
pop
功能:从字典中删除指定的键,返回其对应的值。
语法:D.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>D.pop('n4') #指定的键不存在,返回报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
##################################################
KeyError: 'n4' #指定的键不存在,返回指定的值
>>>D.pop('n4','check')
'check'
##################################################
>>>D.pop('n2') #指定的键存在,返回其对应值
'spirit'
##################################################
>>>D.pop('n3','check') #指定的键存在,指定值无效,依然返回其对应值
'tester'
##################################################
popitem
功能:随机删除字典的键值对并以元组的形式返回
语法:D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty.
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>D.popitem()
('n1', 'liushuai')
>>>D.popitem()
('n2', 'spirit')
>>>D.popitem()
('n3', 'tester')
>>>D.popitem() #当字典为空时,抛出异常。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'popitem(): dictionary is empty'
setdefault
功能:查找键值。若键不在字典中,将会添加键并将值设定为默认值
语法:D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
##指定的键存在,则返回其对应的值,原字典不变
>>>D.setdefault('n2')
'spirit'
>>>print D
{'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
#######################################################################
##指定的键不存在,则修改原字典,该键对应的值默认为none
>>>D.setdefault('n4')
>>>print D
{'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester', 'n4': None}
#######################################################################
##指定的键不存在,则修改原字典,该键对应的值为指定值
>>>D.setdefault('n5','check')
>>>print D
{'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester', 'n4': None, 'n5': 'check'}
update
功能:以字典或迭代器更新原字典
语法: D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
If E present and has a .keys() method, does: for k in E: D[k] = E[k]
If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v
In either case, this is followed by: for k in F: D[k] = F[k]
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>D1 = {'n1':'liush','n4':'Jerry'}
>>>D2 = {1:'IT',2:'SALE'}
#键相同时,则其对应的原字典的值将被覆盖
>>>D.update(D1)
{'n1': 'liush', 'n2': 'spirit', 'n3': 'tester', 'n4': 'Jerry'}
####################################################
#键不同时,则追加
>>>D.update(D2)
{1: 'IT', 2: 'SALE', 'n1': 'liush', 'n2': 'spirit', 'n3': 'tester', 'n4': 'Jerry'}
values
功能:以列表的形式返回所有值
语法:D.values() -> list of D's values
实例展示:
>>>D = {'n1': 'liushuai', 'n2': 'spirit', 'n3': 'tester'}
>>>L = D.values()
>>>print L
['liushuai', 'spirit', 'tester']
作者博文地址:http://www.cnblogs.com/spiritman/
Python字典 (dict)的更多相关文章
- python字典dict的增、删、改、查操作
## python字典dict的增.删.改.查操作dict = {'age': 18, 'name': 'jin', 'sex': 'male', }#增# dict['heigh'] = 185 # ...
- Python 字典 dict() 函数
描述 Python 字典 dict() 函数用于创建一个新的字典,用法与 Pyhon 字典 update() 方法相似. 语法 dict() 函数函数语法: dict(key/value) 参数说明: ...
- 'dict_values' object does not support indexing, Python字典dict中由value查key
Python字典dict中由value查key 众所周知,字典dict最大的好处就是查找或插入的速度极快,并且不想列表list一样,随着key的增加越来越复杂.但是dict需要占用较大的内存空间,换句 ...
- python 字典dict - python基础入门(15)
前面的课程讲解了字符串str/列表list/元组tuple,还有最后一种比较重要的数据类型也需要介绍介绍,那就是python字典,俗称:dict. python中的字典可与字符串/列表/元组不同,因为 ...
- Python字典(dict)使用技巧
字典dict是Python中使用频率非常高的数据结构,关于它的使用,也有许多的小技巧,掌握这些小技巧会让你高效地的使用dict,也会让你的代码更简洁. 1.默认值 假设name_for_userid存 ...
- python 字典 dict 该注意的一些操作
在用python处理dict 的时候,有几个该注意的地方,这里跟大家提一下: 1)操作dict 时,尽量少产生新的列表对象.比如: 遍历dict的时候,如果用 dic = {"a" ...
- python 字典(dict)按键和值排序
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行: 1 下面的是按照value的值从大到小的顺序来排序 ...
- python 字典dict和列表list的读取速度问题, range合并
python 字典和列表的读取速度问题 最近在进行基因组数据处理的时候,需要读取较大数据(2.7G)存入字典中,然后对被处理数据进行字典key值的匹配,在被处理文件中每次读取一行进行处理后查找是否在字 ...
- Python 字典dict 集合set
字典dict Python内置字典,通过key-value进行存储,字典是无序的,拓展hash names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75 ...
- 使用 json 模块,使json数据格式与Python字典dict数据格式互相转换,获取数据更加方便
一.定义 JSON 是一种数据格式 使用 javaScript (Java 死鬼破特)对象表示法 二.特点 1.JSON 与 XML格式数据的区别 ====== 两种格式的数据,都是跨语言,跨平台 c ...
随机推荐
- ES6新特性4:字符串的扩展
本文摘自ECMAScript6入门,转载请注明出处. 一.ES5字符串函数 concat: 将两个或多个字符的文本组合起来,返回一个新的字符串. indexOf: 返回字符串中一个子串第一处出现的索引 ...
- Python基础-画图:matplotlib
Python画图主要用到matplotlib这个库.具体来说是pylab和pyplot这两个子库.这两个库可以满足基本的画图需求. pylab神器:pylab.rcParams.update(para ...
- Spring源码分析(六)解析和注册BeanDefinitions
摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 当把文件转换为Document后,接下来的提取及注册bean就是我们的重 ...
- traefik-Ingress边缘路由器落地到微服务
1.理解Ingress 简单的说,ingress就是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上.Ingress相当于nginx.apache等负载均衡方 ...
- 内部元素一一相应的集合的算法优化,从list到hashmap
说是算法优化,基本上是在吹牛,仅仅只是算是记录下,我写代码时候的思路.毕竟还是小菜鸟. 我要开一个party,与会者都是情侣,可是情侣并非一起过来的,而是有先有后,可是每位与会者来的时候都拿着一束鲜花 ...
- 【vue】如何在 Vue-cli 创建的项目中引入iView
根据vue项目的搭建教程,一下记录下如何在Vue-cli创建的项目中引入iView. 1)安装iView,在项目下 cnpm install iview --save 2 ) 在 webpack ...
- SharePoint中跨列表查询
1,最近的项目中遇到一个需求,站点中有几十个列表,其中每5,6个列表属于一个模块下的.客户的需求是,首页上显示一个模块下所有列表数据的前5条,并按创建时间排序. 2,刚刚考虑到这块的实现方法时,用的是 ...
- Java静态方法块、非静态方法块、构造方法、静态方法执行顺序
示范类StaticTest.java public class StaticTest { {//只有当创建对象的时候执行 System.out.println("H1 ...
- CentOS7.3安装mysql数据库
Mysql数据库安装 1.环境 操作系统:CentOS 7.3 软件:MySQL 5.7 下载链接:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5 ...
- 使用JQ实现统计剩余字数
JQ实现统计文本框剩余字数 效果图: 代码如下,复制即可使用: <html lang="en"> <head> <meta charset=" ...