[Python 04 ] 字典

来源:互联网 发布:淘宝上 fast头盔 编辑:程序博客网 时间:2024/05/19 12:38
字典
* 创建和使用字典 *  dict()
>>> phonebook = {'Alice': '2341', 'Beth': '9102', 'Ceil': '3258'}>>> phonebook{'Beth': '9102', 'Alice': '2341', 'Ceil': '3258'}>>> phonebook['Beth']'9102'>>> items = [('name', 'Gumby'), ('age', 42)]>>> d = dict(items)>>> d{'age': 42, 'name': 'Gumby'}
* 基本字典操作 *
 字典在很多方面与序列sequence类似
 (1), len(d) 返回d中项(键-值对)的数量;
 (2), d[k] 返回关联到键 k 上的值。
 (3), d[k] = v 将值v关联到键 k 上。
 (4), del d[k] 删除键为 k 的项。
 (5), k in d 检查d中是否有含有键为k的项。
  字典与列表的三点区别:  * 键类型 * 自动添加 * 成员资格
>>> x = []>>> x[42] = 'hi'Traceback (most recent call last):  File "<stdin>", line 1, in <module>IndexError: list assignment index out of range>>> x = {}>>> x[42] = 'hi'>>> x{42: 'hi'}
* 字典的格式化字符串 *
>>> "Ceil's phone number is %(Ceil)s." % phonebook"Ceil's phone number is 3258."
* 字典方法 *
#1 clear() 方法的必要性
>>> _value = d.clear()         >>> d{}>>> print _valueNone为什么这个方法有用,请看 : >>> x = {}>>> y = x>>> x['key'] = 'value'>>> y{'key': 'value'}>>> x = {}>>> y{'key': 'value'}对比>>> x = {}>>> y = x>>> x['key'] = 24>>> y{'key': 24}>>> x.clear()>>> y{}
#2 copy() 浅拷贝与深拷贝
>>> from copy import deepcopy             >>> d = {}>>> d['names'] = ['Alfred', 'Beth']>>> c = d.copy()>>> dc = deepcopy(d)>>> d['names'].append('Clive')>>> c{'names': ['Alfred', 'Beth', 'Clive']}>>> dc{'names': ['Alfred', 'Beth']}
#3 fromkeys() 使用给定的键建立新的字典,每个键默认对应的值为None
>>> dict.fromkeys(['name', 'age'], '(unkonw)')  {'age': '(unkonw)', 'name': '(unkonw)'}
#4 get() 是一个更宽松的访问字典项的方法
>>> print d['name']Traceback (most recent call last):  File "<stdin>", line 1, in <module>KeyError: 'name'>>> print d.get('name')None>>> print d.get('name', 'N/A')N/A>>> d{'names': ['Alfred', 'Beth', 'Clive']}>>> d['name'] = 'Eric'>>> d{'names': ['Alfred', 'Beth', 'Clive'], 'name': 'Eric'}
#5 has_key 检查字典是否含有给出的键 d.has_key(k), k in d 一样
>>> d = {}>>> d.has_key('name')False>>> d['name'] = 'Etric'>>> d.has_key('name')True
#6 items 和 iteritems|items将所有的字典项以列表方式返回,后者返回迭代器
>>> d{'name2': 'hi2', 'name': 'Etric'}>>> d.items()[('name2', 'hi2'), ('name', 'Etric')]>>> it = d.iteritems()>>> list(it)[('name2', 'hi2'), ('name', 'Etric')]
#7 keys 和 iterkeys
#8 pop 方法用来获得对应于给定键的值
#9 popitem 方法类似于 list.pop, popitem 弹出随机项
#10 setdefault 类似于 get, 特点是:在字典中不含有给定键的情况下设定相应键值
#11 update  update 方法可以利用一个字典更新另外一个字典
>>> d{'name2': 'hi2', 'name': 'Etric'}>>> x = {'name' : 'python update'}>>> d.update(x)>>> d{'name2': 'hi2', 'name': 'python update'}
#12 values (以列表的形式返回字典中的值)和 itervalues
>>> d{'name2': 'hi2', 'name': 'python update'}>>> d.values()['hi2', 'python update']
** -- 小结 -- **
 *1 : 映射 : Python唯一内建的映射类型是字典
 *2 : 利用字典格式化字符串
 *3 : 字典的方法
下一章 : 条件,循环和其他语句
原创粉丝点击