首页 > 编程 > Python > 正文

Python字典

2019-11-08 02:26:10
字体:
来源:转载
供稿:网友

一、基本用法

1. dict函数

#通过其他映射(如字典)或者(key, value)序列对的形式创建字典In [28]: per = [('name', 'yantao'), ('age', 22)]In [29]: dict(per)Out[29]: {'age': 22, 'name': 'yantao'}#通过关键字参数创建字典In [26]: dict(name='yantao', age=22)Out[26]: {'age': 22, 'name': 'yantao'}

2. 字典的格式化字符串

In [50]: aOut[50]: {'age': 23, 'name': 'yantao'}In [51]: PRint " name: %(name)s/n age: %(age)d" % a name: yantao age: 23

3. 字典中常用方法

clear   清除字典中所有的项In [59]: a = {'age': 23, 'name': 'yantao'}In [60]: b = aIn [61]: aOut[61]: {'age': 23, 'name': 'yantao'}In [62]: bOut[62]: {'age': 23, 'name': 'yantao'}In [63]: a.clear()In [64]: aOut[64]: {}In [65]: bOut[65]: {}copy   返回一个具有相同key-value对的新字典In [76]: a = {'age': 23, 'name': 'yantao'}In [77]: y = a.copy()In [82]: yOut[82]: {'age': 23, 'name': 'yantao'}fromkeys   使用给定的key建立新的字典,每个key对应的value为NoneIn [41]: {}.fromkeys(['name', 'age']) Out[41]: {'age': None, 'name': None}#dict函数后面同样可以使用fromkeys方法;#fromkeys方法可以改变默认valueIn [42]: dict.fromkeys(['name', 'age'], '(unkown)')Out[42]: {'age': '(unkown)', 'name': '(unkown)'}get   get方法更宽松的访问字典项的方法。访问不存在的key时不会出错,会打印NoneIn [49]: aOut[49]: {'age': 23, 'name': 'yantao'}In [50]: print a.get('test')NoneIn [51]: print a['test'] ---------------------------------------------------------------------------KeyError Traceback (most recent call last)<ipython-input-51-0e90ea7a3bb3> in <module>()----> 1 print a['test']KeyError: 'test'has_key   检查key是否存在;也可以用 in 检查In [52]: aOut[52]: {'age': 23, 'name': 'yantao'}In [53]: 'age' in aOut[53]: TrueIn [54]: a.has_key('age')Out[54]: Trueitems和iteritems   items返回的是列表,列表元素为(key, value)对的形式   iteritems返回的是迭代器对象In [68]: aOut[68]: {'age': 23, 'name': 'yantao'}In [69]: print a.items()[('age', 23), ('name', 'yantao')]In [70]: b = a.iteritems()In [71]: type(b)Out[71]: dictionary-itemiterator#list()函数访问In [72]: list(b)Out[72]: [('age', 23), ('name', 'yantao')]In [73]: b.next()---------------------------------------------------------------------------StopIteration Traceback (most recent call last)<ipython-input-73-573a563d926b> in <module>()----> 1 b.next()StopIteration: # 使用next()方法访问In [74]: b = a.iteritems()In [75]: b.next() Out[75]: ('age', 23)In [76]: b.next()Out[76]: ('name', 'yantao')In [77]: b.next()---------------------------------------------------------------------------StopIteration Traceback (most recent call last)<ipython-input-77-573a563d926b> in <module>()----> 1 b.next()StopIteration:

for循环结合items()可以使用序列解包这一个特定,分别打印出key,value,如下:

In [142]: a.items()Out[142]: [('age', 22), ('name', 'yantao')]In [143]: In [143]: for k,v in a.items(): .....: print k,v .....: age 22name yantao

keys和iterkeys   keys以列表的形式返回字典的key   iterkeys返回键的迭代器对象

values和itervalues   values以列表的形式返回字典的value   itervalues返回字典值的迭代器对象

pop   pop(key)方法根据给定的键移除给定的键-值对

popitem   随机弹出字典项

setdefault   类似get()方法,但是如果查询不到键,就会在字典中加入这个键,值为None。此外,可以改变默认值。

In [125]: aOut[125]: {'age': 23}In [126]: a.setdefault('age')Out[126]: 23In [127]: a.setdefault('name', 'yantao')Out[127]: 'yantao'In [128]: aOut[128]: {'age': 23, 'name': 'yantao'}In [129]: a.setdefault('job')In [130]: aOut[130]: {'age': 23, 'job': None, 'name': 'yantao'}update   update方法可以将一个字典更新到另外一个字典中去。即字典中加入另外一个字典中的key-valueIn [134]: a = dict(age=22)In [135]: b = dict(name='yantao')In [136]: aOut[136]: {'age': 22}In [137]: bOut[137]: {'name': 'yantao'}In [138]: a.update(b)In [139]: aOut[139]: {'age': 22, 'name': 'yantao'}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表