文章目录
- 1.映射与序列
- 2.字典的内置方法
1.映射与序列
- 字典是映射类型
字典包含两个要素:键(key)和值(value)他们是成对出现的,用大括号括起来,多对存在时用逗号隔开 - 字符串,列表,元组都是序列类型
- eg:如果是序列,也可以实现类似字典功能,但是很麻烦
- eg:直接使用字典,'李宁’称之为key,'一切皆有可能’称之为value,‘李宁’:‘一切皆有可能’称之为项
- 创建字典的方式
创建空字典,help(dict)可以查询字典用法 - 只要构建一种映射关系就行,这里面使用元组(list也行)构造一种映射关系,除了key:value,还可以用key=value的关键字方式创建字典
- 用索引key赋值
2.字典的内置方法
- dict()是一个工厂函数,调用后会生成该类型的实例
>>> a = dict()
>>> type(a)
<class 'dict'>
- fromkeys(…)
dict. fromkeys(S[,v])
fromkey()方法用于创建并返回一个新的字典。它有两个参数,第一个参数是字典的键;第二个参数是可选的,是传入键的值。如果不提供,默认是None
>>> dict1 = {}
>>> dict1.fromkeys((1,2,3))
{1: None, 2: None, 3: None}
>>> dict2 = {}
>>> dict2.fromkeys((1,2,3),"Number")
{1: 'Number', 2: 'Number', 3: 'Number'}
>>> dict3 = {}
>>> dict3.fromkeys((1,2,3),('one','two','three'))
{1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}
若想要修改key=1,3的值,下面的做法是有问题的,会重新创建一个字典出来
dict1.fromkeys((1,3),'数字')
{1:'数字',3:'数字'}
- 访问字典的方法有key()、values()和items()
key()用于返回字典中的键,value()用于返回字典中所有的值,item()当然就是返回字典中所有的键值对(也就是项) - dict1.get() 对应键的值不存在的话返回一个None,这样程序就不会报错
None只是表示对象,什么都没有的对象
dict1.get()比dict1[32]强势的地方 - 找不到值的时候,还可以返回一个具体的值
- 如果不知道一个键是否在字典中,可以使用成员资格操作符(in 或 not in)来判断。然而在序列中,查找的是元素的值,而不是索引号,字典查找的是key。
- clear()可清空一个字典
注意不好的清空方式 - dict1.copy():浅拷贝
id可以返回对象的地址
深拷贝前后对象的地址是不一样的,赋值前后对象的地址是一样的(浅拷贝)。eg潜拷贝若增加字典c中的项,可以影响到a - pop()是给定键弹出对应的值,popitem()是随机弹出一个项,因为字典是没有顺序的
- dict1.setdefault():找不到给定键对应的值话会自动在字典中创建一个基于该键的项
(区别于dict1.get()的结果) - dict1.update():根据一个字典或映射关系去更新另一个字典
- 参考:小甲鱼零基础入门学习python笔记,第二十五课:字典:当索引不好用时,第二十六课:字典:各种内置方法