跳转到内容

Python/字典

维基教科书,自由的教学读本

字典(dict)的每个元素,用冒号(:)分割的键-值对构成。元素间用逗号(,)分割。整个字典包括在花括号({})中表示。

使用方括号访问字典中的元素的值。如果键不存在,则抛出KeyError。与key值相等的都可以查到同一个项。

键必须是可哈希的值。键必须是唯一的。键是不可变的,因此键可以为数字,字符串或元组,但用列表不行。可以增加新的键-值对。可以对已有的键对应的值。

del关键字可以删除键: dict['Name'] ,也可以删除字典del dict

键的顺序保持插入序。

创建字典的各种途径[编辑]

用冒号(:)分割的键-值对,键-值对之间用逗号(,)分割。整个字典包括在大括号({})中表示。例如:{'jack': 4098, 'sjoerd': 4127} or {4098: 'jack', 4127: 'sjoerd'}

字典comprehension: {}, {x: x ** 2 for x in range(10)}

使用类型构造符:

  • class dict(**kwargs) 如果给出了关键字参数(keyword arguments),则将关键字参数及其值添加到从位置参数创建的字典中。 如果要添加的键已经存在,则关键字参数的值将替换位置参数的值。如f = dict({'one': 1, 'three': 3}, two=2)
  • class dict(mapping, **kwargs) 如果给定位置参数并且它是映射对象,则使用与映射对象相同的键值对创建字典。
  • class dict(iterable, **kwargs) 如果给定位置参数并且它不是映射对象,则位置参数必须是可迭代对象。可迭代对象中的每个项目本身必须是恰好具有两个对象的可迭代对象。 每个元素的第一个对象成为新字典中的键,第二个对象成为相应的值。 如果一个键出现多次,则该键的最后一个值将成为新字典中的对应值。如 c = dict(zip(['one', 'two', 'three'], [1, 2, 3])) 或者 d = dict([('two', 2), ('one', 1), ('three', 3)])

如果没有给出参数,则创建一个空字典。如:dict()

字典支持的全局方法[编辑]

函数名 描述
del d[key] 删除字典中的键-值对
key in d
key not in d
iter(d) 为iter(d.keys())的简写
reversed(d) 为reversed(d.keys())的简写,返回逆向迭代器
len(dict) 计算字典元素个数,即键的总数
list(dict) 返回字典的键的list
str(dict) 字典内容以可打印的字符串表示
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型
other | 创建一个新字典。other的键值对有优先权
= other | 修改字典。other的键值对有优先权
对键值对的 比较

dict包含的方法[编辑]

方法名 描述
dict.clear() 删除字典内所有元素
dict.copy() 返回一个字典的浅复制
dict.fromkeys(seq,val) 类方法。创建一个新字典,以序列seq中元素做字典的键,可选的val为字典所有键对应的初始值
dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
dict.items() 以列表返回可遍历的(键, 值) 元组数组
dict.keys() 返回字典所有的键的静态列表
dict.setdefault(key, default=None) 和get()类似返回其值, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2) 把字典dict2的键/值对更新到dict里
dict.values() 以列表返回字典中的所有值
dict.pop(key[,default]) 删除字典给定键 key 所对应的值,返回被删除的值。key值必须给出。 否则,返回default值
dict.popitem() 随机返回并删除字典中的一对键和值(一般删除末尾对)