python 内置类型简述(4) —— 集合映射类(set、frozenset、dict)

注:Iterable[int] 为任一元素为 int 类型的可迭代对象,如列表 [1, 2, 3]
注:set() 为一个集合实例,可用任一列表替换(如 {‘asd’}),frozenset()、dict() 同理
注:set | frozenset | dict 表示参数可为 set、frozenset、dict 任一类型,set() | frozenset() | dict() 同理

1. 新建字典

{key: value for key, value in Iterable}:字典推导式,根据 Iterable 中元素生成列表
{key: value for value, key in Iterable}
{key: value for key, value in Iterable if …}:选择 Iterable 中符合条件的元素

dict().fromkeys(Iterable):使用 iterable 的键创建字典,键值设为 None
dict().fromkeys(Iterable, Any):设置键值为 Any

2. 集合基本运算(basic_operate)

交集运算
set() | frozenset()
set() & set()
set().intersection(Iterable, …)
set().intersection_update(Iterable, …):同时更新 set

并集运算
set() | frozenset()
set() | set()
set().union(Iterable, …)
set().update(Iterable, …):同时更新 set

差集运算
set() | frozenset()
set() - set()
set().difference(Iterable, …)
set().difference_update(Iterable, …):同时更新 set

异或运算(对称差)
set() | frozenset()
set() ^ set()
set().symmetric_difference(Iterable, …)
set().symmetric_difference_update(Iterable, …):同时更新 set

3. 元素个数(length)

len(set | frozenset | dict)

4. 浅拷贝(copy)

set() | dict().copy()

5. 字典排序(sort)

reversed(dict)

sorted(dict):对 dict 键进行排序
sorted(dict ,reverse=[True]):反向排序
sorted(dict().items(),key=[lambda d: d[1]]):对 dict 键值对进行排序(根据 dict 值进行排序)
sorted(dict().items(),key=[lambda d: (d[1], d[0])]):对 dict 键值对进行排序(首先根据 dict 值进行排序,值相同时根据键进行排序)

6. 查找某个元素(select_elem)

… in …
… not in …

key in dict() | dict().values():判断 键 是否为字典中的键
(key, value) in dict().items():判断 键值对 是否为字典元素

dict().get(Any):返回 dict 键 Any 对应的值;若不存在键 Any,则返回 None
dict().get(Any, Any):若不存在键 Any_1,则返回 Any_2

dict().setdefault(Any):返回 dict 键 Any 对应的值;若不存在键 Any,则插入值为 None 的键 Any
dict().setdefault(Any, Any):若不存在键 Any_1,则插入值为 Any_2 的键 Any_1

7. 集合添加元素(add_elem)

set().add(Any):将元素 Any 添加到 set 中

8. 删除某个元素(delete_elem)

set().pop():返回 set 中第一个元素,并将其从 set 中移除
set().remove(Any):移除 set 中元素 Any,若不存在元素 Any,引发 KeyError
set().discard(Any):移除 set 中的元素 Any

dict().pop(Any[‘key’]):返回 dict 中键为 key 的元素值,并将其从 dict 中移除(未找到 key,引发 KeyError)
dict().pop(Any[‘key’], [Any[‘default’]]):移除 dict 中键为 key 的元素(未找到 key,返回 default)
dict().popitem():移除最新加入 dict 的键值对
del dict()[Any]:若不存在键 Any,引发 KeyError

9. 集合比较

set() | frozenset().isdisjoint(Iterable):set 中没有与 Iterable 共有的元素,则返回 True

set() | frozenset() <= set() | frozenset():set_1 是 set_2 的子集,则返回 True
set() | frozenset().issubset(Iterable):set 中每个元素都在 Iterable 中,则返回 True
set() | frozenset() < set() | frozenset():set_1 是 set_2 的真子集,则返回 True

set() | frozenset() >= set() | frozenset():set_2 是 set_1 的子集,则返回 True
set() | frozenset().issuperset(Iterable):Iterable 中每个元素都在 set 中,则返回 True
set() | frozenset() > set() | frozenset():set_2 是 set_1 的子集,则返回 True

10. 获取字典视图(get_view)

list(dict):返回以 dict 的键为元素的列表
iter(dict):返回以 dict 的键为元素的迭代器

dict().keys():返回由 dict 值组成的新视图
dict().values():返回由 dict 键组成的新视图
dict().items():返回由 dict 项 (键,值) 组成的新视图

11. 字典拼接(concatenate)

dict() | dict():使用 dict_2 的键值对更新 dict_1,覆盖原有的键
{**dict(), **dict()}
dict().update(dict | Iterable(Any, Any)):使用 dict_2 的键值对或 Iterable 中的值更新 dict_1,覆盖原有的键

12. 字典拆包(unpack)

{**dict(), **dict()}:返回一个字典,元素为 dict_1 与 dict_2 中元素值,dict_2 会覆盖 dict_1 的键
{**dict(), Any: Any}:返回一个字典,元素为 dict_1 中元素值与 (Any,Any) 键值对,(Any,Any) 键值对 覆盖 dict_1 的键

  • 18
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值