python3 字典(Dictionaries)
字典
字典是另一种 可变容器模型,且可存储 任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key:value1,key2:value2}
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:
dict = {'Alice':'2341','Beth':'9102','Cecil':'3258'}
#也可以如此创造字典
dict1 = {'abc':456};
dict2 = {'abc':123,98.6:37};
访问字典里的值
把相应的键放入到方括号中,如下实例:
修改字典
向字典添加新内容的方法是增加新的 键/值 对,修改或删除已有 键/值 对如下实例:
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:
字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
-
不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
-
键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
字典内置函数&方法
Python字典包含了以下内置函数:
- len(dict) 计算字典元素个数,即键的总数。
- str(dict) 输出字典,以可打印的字符串表示。
- type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
Python字典包含了以下内置方法:
方法 | 含义 | 示例 |
---|---|---|
dict.clear() | 删除字典内所有元素 | |
dict.copy() | 返回一个字典的浅复制 | 实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。 |
dict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 | |
dict.get(key, default=None) | 返回指定键的值,如果值不在字典中返回默认值默认值 None | |
key in dict | 如果键在字典dict里返回true,否则返回false | |
dict.items() | 以列表返回可遍历的(键, 值) 元组数组 | |
dict.keys() | 返回一个迭代器,可以使用 list() 来转换为列表 | |
dict.setdefault(key, default=None) | 如果 key 在 字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。 | |
dict.update(dict2) | 把字典dict2的键/值对更新到dict里 | |
dict.values() | 返回一个迭代器,可以使用 list() 来转换为列表 | |
pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值。 | |
popitem() | 随机返回并删除字典中的一对键和值(一般删除末尾对)。如果字典已经为空,却调用了此方法,就报出KeyError异常。 |
其他:
将列表转换为键的简单方法是将其转换为元组
dict类型函数接受一个元组
链接:https://www.runoob.com/python3/python3-dictionary.html