Python字典 (dict)
2016-01-19 16:21
996 查看
作者博文地址:http://www.cnblogs.com/spiritman/
字典是Python语言中唯一的映射类型。字典对象是可变的,它是一个容器类型,支持异构、任意嵌套。
创建字典
语法:{key1:val1,key2:val2,.....}
dict1 = {} #创建空字典
dict2 = {'n1':'liush','n2':'spirit','n3':'tester'}
使用函数dict创建字典
使用zip和dict创建字典
字典常用操作及实例展示
可以使用dir(dict)查看字典支持的操作方法
clear
功能:清空字典所有元素
语法:D.clear() -> None. Remove all items from D
实例展示:
copy
功能:浅复制字典。
语法:D.copy() -> a shallow copy of D
实例展示:
fromkeys
功能:用于创建一个新字典,以序列S中的元素作为字典的键,v为新字典中所有键对应的初始值,默认为none。
语法:dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.v defaults to None
实例展示:
get
功能:获取指定键的值
语法:D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None
实例展示:
has_key
功能:判断字典中是否存在指定键
语法:D.has_key(k) -> True if D has a key k, else False
实例展示:
items
功能:返回以字典中的键值对组成的元组作为元素的列表
语法:D.items() -> list of D's (key, value) pairs, as 2-tuples
实例展示:
iteritems
功能:对以字典中的键值对组成的元组进行迭代,可用于for循环
语法:D.iteritems() -> an iterator over the (key, value) items of D
实例展示:
iterkeys
功能:对字典中的键进行迭代(遍历)
语法:D.iterkeys() -> an iterator over the keys of D
实例展示:
itervalues
功能:对字典中的键进行迭代(遍历)
语法:D.itervalues() -> an iterator over the values of D
实例展示:
keys
功能:以列表的形式返回所有键
语法:D.keys() -> list of D's keys
实例展示:
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
实例展示:
popitem
功能:随机删除字典的键值对并以元组的形式返回
语法:D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty.
实例展示:
setdefault
功能:查找键值。若键不在字典中,将会添加键并将值设定为默认值
语法:D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
实例展示:
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]
实例展示:
values
功能:以列表的形式返回所有值
语法:D.values() -> list of D's values
实例展示:
作者博文地址: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','123') >>>print L [('x', '1'), ('y', '2'), ('z', '3')] >>>L = zip('xyz','123','abc') >>>print L [('x', '1', 'a'), ('y', '2', 'b'), ('z', '3', 'c')] ################################################################################ >>>D = dict(zip('xyz','123')) >>>print D {'y': '2', 'x': '1', 'z': '3'} >>>D = dict(zip('xyz','123','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中序列与字典的相同和不同之处
- 自学Python九 爬虫实战二(美图福利)
- python, web 以及 后台开发
- python 多线程的通俗易懂的博客
- 举例讲解如何在Python编程中进行迭代和遍历
- python废话一:python的优势
- Python的自动化部署模块Fabric的安装及使用指南
- learn python the hard way(笨办法学python) 练习38 附加练习
- Python中的axis=0,axis=1
- Python编程中time模块的一些关键用法解析
- re正则在python中的简单实用
- day12 python学习随笔 下
- day12 python学习随笔 中
- python之禅
- Python 5.3 多重继承
- sys.stdout的应用,Python标准输出sys.stdout的重定向
- Python编程中的文件读写及相关的文件对象方法讲解
- day12 python学习随笔 上
- python数据处理工具 pandas包常用方法总结(持续更新)
- Python常用内建模块