1. 字典
- 定义:可以把字典理解为 键: 值 对的集合,但字典的键必须是唯一的。花括号
{}
用于创建空字典,注:字典也是可变类型
1.1 常用方法
- list(d):返回字典 d 中使用的所有键的列表
- len(d):返回字典 d 中的项数
- d[key]:返回 d 中以 key 为键的项。 如果映射中不存在 key 则会引发
KeyError
- d[key] = value:将
d[key]
设为 value - del d[key]:将
d[key]
从 d 中移除。 如果映射中不存在 key 则会引发KeyError
- key in d:如果 d 中存在键 key 则返回
True
,否则返回False
- iter(d):返回以字典的键为元素的迭代器。 这是
iter(d.keys())
的快捷方式 clear
():移除字典中的所有元素copy
():返回原字典的浅拷贝get
(key[, default]):如果 key 存在于字典中则返回 key 的值,否则返回 default。 如果 default 未给出则默认为None
,因而此方法绝不会引发KeyError
items
():返回由字典项 ((键, 值)
对) 组成的一个新视图keys
():返回由字典键组成的一个新视图pop
(key[, default]):如果 key 存在于字典中则将其移除并返回其值,否则返回 default。 如果 default 未给出且 key 不存在于字典中,则会引发KeyError
values
():返回由字典值组成的一个新视图- reversed(d):返回一个逆序获取字典键的迭代器。 这是 reversed(d.keys()) 的快捷方式
setdefault
(key[, default]):如果字典存在键 key ,返回它的值。如果不存在,插入值为 default 的键 key ,并返回 default 。 default 默认为None
update
([other]):使用来自 other 的键/值对更新字典,覆盖原有的键。 返回None
d | other:合并 d 和 other 中的键和值来创建一个新的字典,两者必须都是字典。当 d 和 other 有相同键时, other 的值优先(3.9新功能)
# -*- coding: utf-8 -*-
# @Time : 2021/1/31
# @Author : 大海
# 创建空字典
info = dict()
info1 = {}
d = dict(name='大海', age=27, base='大连', professional='测试工程师')
t = {'name': '大海', 'age': '27', 'base': '大连', 'professional': '测试工程师'}
f = {'red': 'a', 'blue': 'b', 'green': 'c'}
print(d)
# 返回键的列表
print(list(d))
# 返回字典 d 中的项数
print(len(d))
print(len(info))
# 返回 d 中以 key 为键的项。 如果映射中不存在 key 则会引发 KeyError
print(d['name'])
# print(info['name'])
# 将 d[key] 设为 value
d['name'] = '小白'
print(d)
# 将 d[key] 从 d 中移除。 如果映射中不存在 key 则会引发 KeyError
del d['age']
print(d)
# 如果 d 中存在键 key 则返回 True,否则返回 False
res = 'name' in d
print(res)
# 返回以字典的键为元素的迭代器。 这是 iter(d.keys()) 的快捷方式
keys = iter(d)
print(list(keys))
# 移除字典中的所有元素
d.clear()
print(d)
# 返回原字典的浅拷贝
t1 = t.copy()
print(t1)
print(id(t), id(t1))
# 如果 key 存在于字典中则返回 key 的值,否则返回 default。 如果 default 未给出则默认为 None,因而此方法绝不会引发 KeyError
age = t.get('age')
print(age)
birthday = t.get('birthday', '五月初四')
print(birthday)
birthday = t.get('birthday')
print(birthday)
# 返回由字典项 ((键, 值)) 组成的一个新视图
print(t.items())
# 返回由字典键组成的一个新视图
print(t.keys())
# 如果 key 存在于字典中则将其移除并返回其值,否则返回 default。 如果 default 未给出且 key 不存在于字典中,则会引发 KeyError
t.pop('base')
print(t)
# 返回由字典值组成的一个新视图
values = t.values()
print(values)
# 返回一个逆序获取字典键的迭代器。 这是 reversed(d.keys()) 的快捷方式
reversed(t) # python3.8以上版本有效
print(t)
# 如果字典存在键 key ,返回它的值。如果不存在,插入值为 default 的键 key ,并返回 default 。 default 默认为 None
t.setdefault('base', '辽宁')
print(t)
t.setdefault('age', '28')
print(t)
# 使用来自 other 的键/值对更新字典,覆盖原有的键。 返回 None
f.update(red=1, blue=2)
print(f)
# 合并 d 和 other 中的键和值来创建一个新的字典,两者必须都是字典。当 d 和 other 有相同键时, other 的值优先
print(t | f) # 3.9特性