首页 > 编程语言 >python 内置类型简述(4) —— 集合映射类(set、frozenset、dict)

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

时间:2024-07-18 14:26:34浏览次数:15  
标签:set python dict key frozenset Any Iterable

注: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 的键

标签:set,python,dict,key,frozenset,Any,Iterable
From: https://blog.csdn.net/guanxxx/article/details/140522320

相关文章

  • Amazon Science 团队计划于VLDB 2024 (August 26-30 2024) 发布 redset 数据集
    数据集介绍        Redset是一个数据集,包含了三个月的AWSRedshiftfleet 中选定实例样本上运行的用户查询元数据。数据集用途    AmazonScience团队打算在VLDB2024期间开放该部分数据,虽然目前数据集还没有开放,但是从数据集的Schema来看,和在VLDB2024......
  • Python数据可视化之numpy的11个常用的创建数组的函数
    numpy库在处理成千上万的数据时,Python的1维列表已经不适合来对数据进行处理,效率会很慢,所以numpy就诞生了,他可以将列表变成数组,而数组可以是1维、2维、3维甚至更高纬度,可用于存储和处理大型的矩阵,此外numpy提供了大量的数学函数,包括数学、逻辑、形态操作、排序、选择,输出和......
  • 猫头虎分享已解决Bug ||Asset validation failed (90296) App sandbox not enabled. T
    ......
  • Python与OpenCV的魔法:批量将照片变身为精美素描图
    1.前言在数字图像处理领域,图像转换和滤波是非常常见的操作。特别是将彩色照片转换为素描图,这种技术可以用于艺术创作、图像分析以及一些特殊的图像处理需求。本文将详细介绍如何使用Python和OpenCV库批量将任意图片转换为素描图。2.简介OpenCV(OpenSourceComputerVisionL......
  • Python获取EXCEL实用行数
    #获取EXCEL实用行数defget_excel_rows(_excel_path):"""输入参数::param_excel_path:Excel全路径功能:获取Excel实际行数,即培训人员数量"""ifnot_excel_path.exists():print(f'{Fore.RED}文件不存在噢!!!\n{_excel_path}{Sty......
  • python笔记:赋值,浅拷贝和深拷贝
    在Python中,变量赋值、浅拷贝和深拷贝在处理对象时有不同的行为和应用场景。以下是它们的详细区别:1.赋值赋值操作只是创建了一个新的引用(别名)来指向同一个对象。也就是说,赋值操作并不创建新的对象,原始对象和赋值后的变量指向同一块内存区域。a=[1,2,3]b=a#b是a......
  • 如何让Python爬虫在遇到异常时继续运行
    概述在数据收集和数据挖掘中,爬虫技术是一项关键技能。然而,爬虫在运行过程中不可避免地会遇到各种异常情况,如网络超时、目标网站变化、数据格式不一致等。如果不加以处理,这些异常可能会导致爬虫程序中断,影响数据采集效率和完整性。本文将概述如何使用Python编写一个健壮的爬......
  • 【2024版】超详细Python+Pycharm安装保姆级教程,Python+Pycharm环境配置和使用指南,看完
    目录一、Python开发环境配置1.Python下载与安装二、PyCharm安装+运行测试+汉化1.PyCharm下载及安装2.解释器配置及项目测试3.PyCharm汉化本文将从Python解释器安装到Pycharm专业版安装和配置汉化等使用都进行了详细介绍,希望能够帮助到大家。Python解释器&Pycharm安......
  • 七、python函数基础
    文章目录学习目标一、函数的介绍二、函数的参数三、函数的返回值四、函数的注释五、函数调用函数六、函数高级6.1全局变量和局部变量6.2函数多个返回值6.3默认参数的使用6.4可变参数的使用6.5可变数据类型和不可变数据类型6.6函数的注意事项......
  • 五、python列表
    文章目录学习目标一、列表的基本使用二、列表的遍历2.1while循环遍历2.2for...in循环遍历三、列表的排序3.1交换两个变量的值3.2冒泡排序3.3列表的排序与反转方法四、列表的复制4.1可变数据类型与不可变数据类型4.2列表的复制五、列表......