文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。
笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者:Aliven888
1、字典(dict)
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ;在字典中, key 是不能重复,否则后来者会覆盖前者的 value。
格式:
d = {
key1 : value1, key2 : value2, key3 : value3 }
在 python 中 字典 的创建方式是很灵活的,下面举例介绍下其他的定义方式,
# 使用 {} 和 : 创建字典
>>> dict1 = {
'a':1, 'b':2, 'c':3}
>>> dict1
{
'a': 1, 'c': 3, 'b': 2}
# 使用 dict() 创建字典
>>> dict2 = dict((('a',1), ('b',2), ('c',3)))
>>> dict2
{
'a': 1, 'c': 3, 'b': 2}
# 也可以通过具有映射关系的参数创建字典
>>> dict3 = dict(a=1, b=2, c=3)
>>> dict3
{
'a': 1, 'c': 3, 'b': 2}
# key 值的位置,不能使用字符串的引号,否则报错
>>> dict4 = dict('a'=1, 'b'=2, 'c'=3)
SyntaxError: keyword can't be an expression
# 使用 zip 函数
>>> dict5 = dict(zip(['a', 'b', 'c'], [1,2,3]))
>>> dict5
{
'a': 1, 'c': 3, 'b': 2}
>>> dict6 = dict([('a', 1), ('b', 2), ('c', 3)])
>>> dict6
{
'a': 1, 'c': 3, 'b': 2}
>>> dict7 = dict({
'a':1, 'b':2, 'c':3})
>>> dict7
{
'a': 1, 'c': 3, 'b': 2}
#插入数值
>>> dict1['d'] = 4
>>> dict1
{
'a': 1, 'c': 3, 'b': 2, 'd': 4}
#访问不存在的 key
>>> dict1['f']
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
dict1['f']
KeyError: 'f'
# 删除键值对
>>> del dict1['d']
>>> dict1
{
'a': 1, 'c': 3, 'b': 2}
# 删除映射表
>>> del dict1
>>> dict1 # 访问不存在的表,抛出异常
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
dict1
NameError: name 'dict1' is not defined
# 通过 key 修改 value
>>> dict2
{
'a': 1, 'c': 3, 'b': 2}
>>> dict2['b'] = 66
>>> dict2
{
'a': 1, 'c': 3, 'b': 66}
# 判断某个 key 是否在 字典中
>>> 'a' in dict2
True
>>> 'f' not in dict2
True
# 清空字典
>>> dict2.clear()
>>> dict2
{
}
注意事项:
1、键必须是唯一的,但值则不必。
2、值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
python字典包含了以下内置方法:
函数 | 描述 |
---|---|
len(dict) | 计算字典元素个数,即键的总数。 |
str(dict) | 输出字典,以可打印的字符串表示。 |
type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
dict.clear() | 删除字典内所有元素 |
dict.copy() | 返回一个字典的浅复制 |
dict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
dict.get(key, default=None) | 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
key in dict | 如果键在字典dict里返回true,否则返回false |
dict.items() | 以列表返回可遍历的(键, 值) 元组数组 |
dict.keys() | 返回一个迭代器,可以使用 list() 来转换为列表 |
dict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
dict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
dict.values() | 返回一个迭代器,可以使用 list() 来转换为列表 |
pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值 |
popitem() | 随机返回并删除字典中的一对键和值 |
2、zip 内建函数
zip函数也可以整合字典的键值对。
>>> k = [1,2,3] # 定义 键(key) 列表
>>> v = ['a', 3.14, 'aaa'] # 定义 值(value) 列表
>>> d = dict(zip(k,v))
>>> d
{
1: 'a', 2: 3.14, 3: 'aaa'}
>>>