Python-VBA函数之旅-set函数 set函数

目录

一、set函数的常见应用场景:

二、set函数使用注意事项

三、如何用好set函数?

1、set函数:

1-1、Python:

1-2、VBA:

2、推荐阅读:

个人主页: https://blog.csdn.net/ygb_1024?spm=1010.2135.3001.5421

一、set函数的常见应用场景:

        在Python中,set()函数用于创建一个无序且不包含重复元素的集合,由于其独特的性质,set()函数在许多实际场景中都非常有用,常见的应用场景有:

1、去重:当你有一个列表或其他可迭代对象,并且你想快速去除其中的重复元素时,可以使用 set()函数。

2、快速查找:由于set的实现基于哈希表,因此它提供了平均时间复杂度为O(1)的成员查找操作(即 `in` 关键字),这在需要快速检查元素是否存在于集合中时非常有用。

3、集合运算:集合支持多种集合运算,如并集(|)、交集(&)、差集(-)和对称差集(^),这些运算在数据分析、算法实现等领域非常有用。

4、过滤和选择:结合列表推导式,可以使用集合来过滤和选择数据。

5、字典键去重:由于集合中的元素是唯一的,因此它们经常被用作字典的键来确保键的唯一性。

6、性能优化:在某些需要快速查找或判断元素是否存在的场景中,使用集合通常比使用列表更快,因为集合在内部使用哈希表实现,提供了快速的查找和插入操作。

7、图形和网络算法:在处理图形和网络问题时,set常常用于表示节点或边的集合,并进行诸如查找连接节点、计算共同邻居等操作。

8、数据清洗和预处理:在数据清洗和预处理阶段,集合可以用于快速识别并去除重复的数据项。

9、缓存和状态管理:在某些情况下,你可能需要跟踪一个对象或一组对象的状态或属性,使用set()函数可以轻松地存储这些状态,并在需要时进行检查或更新。

10、实现集合的幂集:集合的幂集是所有可能的子集(包括空集和原集合本身)的集合。

二、set函数使用注意事项

        在Python中,set()是一个内置的数据类型,用于存储无序且不重复的元素集合。虽然set()本身不是一个函数(它是一个类,用于创建集合对象),但了解其使用方式和注意事项对于有效使用集合是非常重要的。以下是使用set()(或集合)时的一些注意事项:

1、无序性:集合是无序的,因此你不能依赖元素在集合中的插入顺序。
2、不可变性:集合中的元素必须是不可变类型(如整数、浮点数、字符串、元组等),但集合本身是可变的。
3、去重性:集合会自动去除重复的元素,如果你尝试向集合中添加一个已经存在的元素,该操作不会有任何效果。
4、不支持索引:由于集合是无序的,因此它不支持索引或切片操作。
5、运算符支持:集合支持多种集合运算符,如并集(|)、交集(&)、差集(-)和对称差集(^)。
6、迭代:你可以遍历集合中的所有元素。
7、添加和删除:你可以使用add()方法向集合中添加元素,使用remove()或discard()方法删除元素,如果尝试删除的元素不存在于集合中,remove()会引发KeyError异常,而discard()则不会。
8、性能:集合的查找、添加和删除操作通常具有平均时间复杂度为O(1)的性能,这是因为集合在内存中是通过哈希表实现的。
9、转换:你可以将其他可迭代对象(如列表、元组或字符串)转换为集合,以去除其中的重复元素,但要注意,这样做会丢失原始顺序。
10、空集合的创建:要创建一个空集合,你不能只使用{},因为这会创建一个空字典;相反,你应该使用set()或{}后跟一个逗号来创建空集合(例如set() 或{}),但在实践中,通常只使用set()。
11、子集和超集:你可以使用 `<`、`<=`、`>` 和 `>=` 运算符来检查一个集合是否是另一个集合的子集或超集。
12、不可哈希类型:集合不能包含列表或其他可变类型作为元素,因为这些类型是不可哈希的,如果你尝试这样做,Python会抛出一个TypeError异常。
13、冻结集合:如果你需要一个不可变的集合(即其元素在创建后不能更改),可以使用 frozenset()函数来创建一个冻结集合。

三、如何用好set函数?

        在Python中,set()不是一个函数,而是一个内置的数据类型,用于创建集合对象集合(set)是一个无序且不包含重复元素的数据集合,要充分利用Python的集合(set),需遵循以下建议:

1、去重:集合的一个主要优点是它们会自动去除重复的元素,如果你有一个列表或其他可迭代对象,并且想要去除其中的重复项,你可以将其转换为集合。

2、集合运算:集合支持多种集合运算,如并集、交集、差集和对称差集。

3、检查元素是否存在:使用 `in` 关键字可以检查一个元素是否存在于集合中。

4、添加和删除元素:使用add()方法向集合中添加元素,使用remove()或discard()方法删除元素。

5、集合的交集更新:如果你想要更新一个集合,使其只包含与另一个集合的交集,可以使用intersection_update()方法。

6、集合的差集更新:类似地,你可以使用difference_update()方法来更新一个集合,使其只包含与另一个集合的差集。

7、判断子集和超集:使用 `<`、`<=`、`>` 和 `>=` 运算符来判断一个集合是否是另一个集合的子集或超集。

8、不可变集合:如果你需要一个不可变的集合(即其内容在创建后不能更改),可以使用 frozenset(),这在需要将集合作为字典的键或其他需要不可变类型的地方时很有用。

9、注意性能:集合的查找、添加和删除操作通常具有平均时间复杂度为O(1)的性能,因为它们是通过哈希表实现的,这使得集合在处理大型数据集时特别有效。

10、小心使用可变元素:集合中的元素必须是不可变的,如果你尝试将一个可变对象(如列表)添加到集合中,Python会抛出一个TypeError异常。

1、set函数:
1-1、Python:
1-2、VBA:
略,待后补。
2、推荐阅读:

2-1、Python-VBA函数之旅-round()函数

Python算法之旅:Algorithm

Python函数之旅:Functions

个人主页: https://blog.csdn.net/ygb_1024?spm=1010.2135.3001.5421
作者:神奇夜光杯原文地址:https://blog.csdn.net/ygb_1024/article/details/138622620

%s 个评论

要回复文章请先登录注册