# python3小白课:字典的常用方法 本节课我们来大概将一些字典自带的常用方法。 看例子: ```python # coding:utf-8 # 查看有哪些内置方法?(注意忽略私有方法和特殊方法) print(dir(dict)) a = { 1: 90, "1": 89, (1,): 100, "语文": 90, "数学": 89, "计算机": 100, "英语": 89.57 } # clear,跟列表元组一样,会将字典变为空字典,copy方法可以复制一个字典副本 # 注意不要用b = a这样的写法,这样写clear b时,a也会变空字典 b = a.copy() b.clear() print(b) # get方法非常非常常用,用来取字典中某个键的值,使用[]取值如果键不存在会报错,但get方法取值不存在时, # 会返回None,或者可以指定第二个参数作为返回值。因此,实际编写中更推荐用get而弃用[],除非你百分百保证存在该键 print(a.get("语文")) print(a.get("美术")) # 你也可以指定返回值 print(a.get("美术", 1)) # 我们需要区别于setdefault方法,这个方法可以设置一个键的默认值,当这个键找得到时,与get等效,返回值 # 但当这个键不存在时,setdefault会给字典新增这个键并赋值给的默认值,而get不会新增键 print(a.setdefault("美术", 99)) # 键不存在,返回设定的第二个参数并添加键到字典中 print(a) print(a.setdefault("美术", 98)) # 这次键存在,因此不会修改它的值,可以返回 print(a) # update方法可以用新字典包含的键值对来更新原有字典,当原有字典存在该键时,则更新 # 当原有字典不存在对应键时,则添加该键值对进去 a.update({"语文":0, "体育": 92}) print(a) """ 上述的一些命令是在我们知道这个字典有什么key的情况下,有的时候,我们不知道这个字典有什么键。 有什么办法能够获取键的列表以及值的列表呢? 使用items()方法可以获取字典的每个键值对,通过list命令转化成列表,每个元素是一个键值对元组。 使用keys()方法可以获取字典的每个键,通过list命令转化成列表,每个元素是一个键名。 使用values()方法可以获取字典的每个值,通过list命令转化成列表,每个元素是一个值。 ***这几个方法在做字典枚举时非常有用,请务必掌握。*** """ print(list(a.items())) print(list(a.keys())) print(list(a.values())) # pop方法用于弹出某个键值对,并删除它,找得到会返回对应的值,找不到会报错,跟列表类似 print(a.pop("语文")) print(a) # popitem方法可以弹出某个键值对,实际是弹出底层存储的最后一个键值对并删除 # 由于python的字典没有顺序,我们不能说是定义的最后一个,而是底层存储的最后一个 print(a.popitem()) print(a) # 你也可以用两个变量分别接收键和值 k, v = a.popitem() print(k, v) print(a) # fromkeys方法可以批量创建指定key的字典,还能给默认值。个人很少用这个感觉 # 用列表创建,不给默认值时值默认为None a = dict.fromkeys(['a', 'b']) print(a) # 用元组创建 a = dict.fromkeys(('a', 'b')) print(a) # 指定默认值 a = dict.fromkeys(['a', 'b'], "我是默认值") print(a) # 如果是这样呢?会不会分别给a、b赋值默认值?请自行尝试 a = dict.fromkeys(['a', 'b'], ["我是默认值","111"]) print(a) # 附送一个,利用字典来给列表去重的方法,尤其适用在列表元素量很大时,很方便 a = [1, 0, 3, 7, 7, 5, 5, 0, 1] newList = list({}.fromkeys(a).keys()) print(newList) ``` ### 单词释义 | 单词 | 释义 | | ---------- | ------------------------------------------------------------ | | clear | 清除,清理 | | copy | 复制 | | get | 获得,得到 | | setdefault | set设置,default默认,合起来就是设置默认值 | | update | 更新 | | items | 项目,一件东西(复数) | | keys | key键的复数 | | values | value值的赋值 | | pop | 出栈 | | popitem | pop item两个单词合起来,将一件东西出栈,这里是把键值对抛出字典外 | | fromkeys | from来自...,keys,键的复数,合起来就是以很多键来怎么怎么样的意思 |