详解Python中映射类型的内建函数和工厂函数
1.基本函数介绍 (1)标准类型函数[type()、str()和 cmp()] 算法按照以下的顺序: 工厂函数被用来创建字典,如果不提供参数会生成空字典。当容器类型对象做为一个参数传递给方法 dict(),如果参数是可以迭代的,即一个序列或是一个迭代器或是一个支持迭代的对象,那每个可迭代的元素必须成对出现。在每个值对中,第一个元素是字典的键、第二个元素是字典中的值。 >>> dict(zip(('x','y'),(1,2))) {'y': 2,'x': 1} >>> dict([['x',1],['y',2]]) {'y': 2,'x': 1} >>> dict([('xy'[i-1],i) for i in range(1,3)]) {'y': 2,'x': 1} 如果输入参数是(另)一个映射对象,比如一个字典对象,对其调用dict()会从存在的字典里复制内容来生成新的字典。新生成的字典是原来字典对象的浅复制版本,它与用字典的内建方法copy()生成的字典对象是一样的。但是从已存在的字典生成新的字典速度比用copy()方法慢,推荐使用copy()。 2.映射类型的内建函数和工厂函数使用实例 标准类型函数[type(),str()和cmp()] >>> dict1 = {} >>> dict2 = {'host':'earth','port':80} >>> cmp(dict1,dict2) -1 >>> dict1['host'] = 'earth' >>> cmp(dict1,dict2) -1 >>> dict1['port'] = 80 >>> cmp(dict1,dict2) 0 >>> dict1['port'] = 'tcp' >>> cmp(dict1,dict2) 1 >>> dict2['port'] = 'udp' >>> cmp(dict1,dict2) -1 >>> cdict = {'fruits':1} >>> ddict = {'fruits':1} >>> cmp(cdict,ddict) 0 >>> cdict['oranges'] = 0 >>> cdict['apples'] = 0 >>> cmp(cdict,ddict) 1
dict() >>> dict(zip(('x',2))) {'y': 2,'x': 1} >>> dict([['x',2]]) {'y': 2,'x': 1} >>> dict([('xy'[i-1],3)]) {'y': 2,'x': 1} >>> dict(x=1,y=2) {'y': 2,'x': 1} >>> dict8 = dict(x=1,y=2) >>> dict8 {'y': 2,'x': 1} >>> dict9 = dict(**dict8) >>> dict9 {'y': 2,'x': 1} >>> dict9 = dict8.copy() >>> dict9 {'y': 2,'x': 1} len() >>> dict2 = {'name':'earth','port':80} >>> dict2 {'name': 'earth','port': 80} >>> len(dict2) 2
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |