目录
字典概述
字典是另一种可变容器模型,且可存储任意类型对象,字典是无序的,没有下标
字典使用key-value进行数据的存储,查找速度极快。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }
特点:
字典中的key必须是唯一的
key必须是不可变对象,字符串、整数等都是不可变的,可以作为key
列表list是可变的,不能作为key
和list相比
字典:
1、查找和插入的速度极快,不会随着key-value的增加而变慢
2、需要占用大量的内存,内存浪费多
列表:
1、查找和插入的速度随着数据量的增多而减慢
2、占用空间小,浪费内存少
访问字典中的值
把相应的值放入到方括号[]中
print('访问字典中的值')
dict={'name':'仔仔','age':'18','class':'first'}
print(dict)
print(dict['name'])
结果:
访问字典中的值
{'name': '仔仔', 'age': '18', 'class': 'first'}
仔仔
修改字典
像字典中添加新内容的方法是增加新的键值对
print('修改字典')
dict={'name':'仔仔','age':'18','class':'first'}
dict['age']=20 #更新age
dict['School']='菜鸟' #添加信息
print(dict)
结果:
修改字典
{'name': '仔仔', 'age': 20, 'class': 'first', 'School': '菜鸟'}
删除字典元素
能删除单一的元素也能清空字典(del)
print('删除字典元素')
dict={'name':'仔仔','age':'18','class':'first'} #删除单个元素
del dict['name']
print(dict)
dict.clear() #清空字典
print(dict)
del dict #删除字典
结果:
删除字典元素
{'age': '18', 'class': 'first'}
{}
字典键的特性
1、不允许同一个键出现两次,如果同一个键被赋值两次,后一个值会被记住
2、键必须不可变,所以可以使用数字、字符串、元组充当,而列表就不行
print('字典键的特性')
dict={'name':'仔仔','age':'18','class':'first'}
dict['age']='100'
print(dict)
dict2={('啾咪'):'kk'}
print(dict2)
结果:
字典键的特性
{'name': '仔仔', 'age': '100', 'class': 'first'}
{'啾咪': 'kk'}
字典内置函数&方法
方法 | 描述 |
---|---|
radiansdict.clear() | 删除字典内所有元素 |
radiansdict.copy() | 返回一个字典的浅复制 |
radiansdict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
radiansdict.get(key, default=None) | 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
key in dict | 如果键在字典dict里返回true,否则返回false |
radiansdict.items() | 以列表返回可遍历的(键, 值) 元组数组 |
radiansdict.keys() | 返回一个迭代器,可以使用 list() 来转换为列表 |
radiansdict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
radiansdict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
radiansdict.values() | 返回一个迭代器,可以使用 list() 来转换为列表 |
pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
popitem() | 随机返回并删除字典中的最后一对键和值。 |