python3xiaobaike_2020/chapter3/3-6 python3小白课:字典的常用方法.md
2025-04-20 23:22:14 +08:00

101 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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键的复数合起来就是以很多键来怎么怎么样的意思 |