Python3.3.2 官方文档教程---字典


3.5 字典

定义在python中另一种数据类型是字典。其他语言中字典可能被定义为“组合记忆”或“组合数组”。 不像序列能用数字可以索引,在字典中是任何一种不变类型的关键字keys来查询。字符串和数字是常见的关键字。 如果元组中仅仅包含字符串,数组或者重数,那么元组也可以充当关键字。但是如果元组中直接或者间接包含可变的对象,那么元组就不能做关键字。

你不能把列表用作关键字,因为列表在索引赋值,切片赋值以及方法 append()和extend()运用时可以改变本身值。

把字典认为是一对无序的key:value的对,并且关键字在一个字典中是唯一的是对字典非常正确的认识。可以用del方法来删除一对键值对。当你用一个已经存在的键去保存值时,与其相关联的值将会丢弃。用没有存在的关键字去获得值时会出错。

用字典中的方法list(d.keys())就可以获得包含字典中所有的关键字的列表,列表中的关键字是无序的,如果你想要对关键字进行排序,可以用方法sorted(d.keys()).可以用in 关键字来检查单个关键字是否在字典中。

如下是运用字典的一个简单例子:

>>> tel = {’jack’: 4098, ’sape’: 4139}

>>> tel[’guido’] = 4127

>>> tel

{’sape’: 4139, ’guido’: 4127, ’jack’: 4098}

>>> tel[’jack’]

4098

>>> del tel[’sape’]

>>> tel[’irv’] = 4127

>>> tel

{’guido’: 4127, ’irv’: 4127, ’jack’: 4098}

>>> list(tel.keys())

[’irv’, ’guido’, ’jack’]

>>> sorted(tel.keys())

[’guido’, ’irv’, ’jack’]

>>> ’guido’ in tel

True

>>> ’jack’ not in tel

False

在字典中可以用dict()构造方法直接直接从包含key-vlaue的序列中定义一个字典。

>>> dict([(’sape’, 4139), (’guido’, 4127), (’jack’, 4098)])

{’sape’: 4139, ’jack’: 4098, ’guido’: 4127}

此外,字典利用复合表达式从随机的key和value的表达式中来创建字典。

>>> {x: x**2 for x in (2, 4, 6)}

{2: 4, 4: 16, 6: 36}

当关键字是简单的字符串时,可以用关键字参数直接指定对象,这样有时会更加的容易。

>>> dict(sape=4139, guido=4127, jack=4098)

{’sape’: 4139, ’jack’: 4098, ’guido’: 4127}

评论关闭