Python中的set()函数是用来创建一个无序的、不重复的元素集合。它可以用于去除列表、元组或字符串中的重复元素,也可以用于数学中的集合运算,如并集、交集、差集等。
set()函数的语法如下:
_x000D_`python
_x000D_set(iterable)
_x000D_ _x000D_其中,iterable是可迭代对象,如列表、元组或字符串。
_x000D_下面,我们来详细了解一下set()函数的用法。
_x000D_## 去除重复元素
_x000D_set()函数最常见的用法是去除列表、元组或字符串中的重复元素。例如,我们有一个列表,其中包含了一些重复的元素:
_x000D_`python
_x000D_lst = [1, 2, 3, 2, 4, 1, 5, 6, 3]
_x000D_ _x000D_我们可以使用set()函数将其转换为一个集合,从而去除重复元素:
_x000D_`python
_x000D_s = set(lst)
_x000D_print(s)
_x000D_ _x000D_输出结果为:
_x000D_ _x000D_{1, 2, 3, 4, 5, 6}
_x000D_ _x000D_可以看到,集合中只保留了列表中的不重复元素。
_x000D_同样的,我们也可以对元组或字符串进行去重操作:
_x000D_`python
_x000D_t = (1, 2, 3, 2, 4, 1, 5, 6, 3)
_x000D_s = set(t)
_x000D_print(s)
_x000D_str = "hello world"
_x000D_s = set(str)
_x000D_print(s)
_x000D_ _x000D_输出结果分别为:
_x000D_ _x000D_{1, 2, 3, 4, 5, 6}
_x000D_{'r', 'd', 'h', 'e', 'o', 'l', 'w', ' '}
_x000D_ _x000D_## 集合运算
_x000D_除了去重,set()函数还可以用于数学中的集合运算,如并集、交集、差集等。
_x000D_### 并集
_x000D_两个集合的并集是指包含两个集合中所有元素的集合。我们可以使用union()方法或|运算符来计算两个集合的并集。
_x000D_`python
_x000D_s1 = {1, 2, 3}
_x000D_s2 = {3, 4, 5}
_x000D_s3 = s1.union(s2)
_x000D_s4 = s1 | s2
_x000D_print(s3)
_x000D_print(s4)
_x000D_ _x000D_输出结果为:
_x000D_ _x000D_{1, 2, 3, 4, 5}
_x000D_{1, 2, 3, 4, 5}
_x000D_ _x000D_### 交集
_x000D_两个集合的交集是指包含两个集合有元素的集合。我们可以使用intersection()方法或&运算符来计算两个集合的交集。
_x000D_`python
_x000D_s1 = {1, 2, 3}
_x000D_s2 = {3, 4, 5}
_x000D_s3 = s1.intersection(s2)
_x000D_s4 = s1 & s2
_x000D_print(s3)
_x000D_print(s4)
_x000D_ _x000D_输出结果为:
_x000D_ _x000D_{3}
_x000D_{3}
_x000D_ _x000D_### 差集
_x000D_两个集合的差集是指包含属于第一个集合而不属于第二个集合的元素的集合。我们可以使用difference()方法或-运算符来计算两个集合的差集。
_x000D_`python
_x000D_s1 = {1, 2, 3}
_x000D_s2 = {3, 4, 5}
_x000D_s3 = s1.difference(s2)
_x000D_s4 = s1 - s2
_x000D_print(s3)
_x000D_print(s4)
_x000D_ _x000D_输出结果为:
_x000D_ _x000D_{1, 2}
_x000D_{1, 2}
_x000D_ _x000D_## 相关问答
_x000D_### 1. set()函数的返回值是什么类型?
_x000D_set()函数返回的是一个集合类型的对象。
_x000D_### 2. set()函数去重后的元素顺序是否与原列表、元组或字符串的顺序一致?
_x000D_set()函数去重后的元素是无序的,顺序与原列表、元组或字符串的顺序不一定一致。
_x000D_### 3. set()函数能否去重一个嵌套列表中的元素?
_x000D_set()函数只能去重一维列表、元组或字符串中的元素,无法去重嵌套列表中的元素。如果需要去重嵌套列表中的元素,可以使用列表推导式实现。
_x000D_### 4. 如何判断一个元素是否在集合中?
_x000D_可以使用in关键字来判断一个元素是否在集合中。例如:
_x000D_`python
_x000D_s = {1, 2, 3}
_x000D_if 1 in s:
_x000D_print("1在集合中")
_x000D_else:
_x000D_print("1不在集合中")
_x000D_ _x000D_输出结果为:
_x000D_ _x000D_1在集合中
_x000D_ _x000D_### 5. 如何向集合中添加元素?
_x000D_可以使用add()方法向集合中添加一个元素,或使用update()方法向集合中添加多个元素。例如:
_x000D_`python
_x000D_s = {1, 2, 3}
_x000D_s.add(4)
_x000D_print(s)
_x000D_s.update([5, 6])
_x000D_print(s)
_x000D_ _x000D_输出结果为:
_x000D_ _x000D_{1, 2, 3, 4}
_x000D_{1, 2, 3, 4, 5, 6}
_x000D_ _x000D_### 6. 如何从集合中删除元素?
_x000D_可以使用remove()方法或discard()方法从集合中删除一个元素,或使用pop()方法随机删除一个元素。例如:
_x000D_`python
_x000D_s = {1, 2, 3, 4, 5}
_x000D_s.remove(3)
_x000D_print(s)
_x000D_s.discard(6)
_x000D_print(s)
_x000D_x = s.pop()
_x000D_print(x)
_x000D_print(s)
_x000D_ _x000D_输出结果为:
_x000D_ _x000D_{1, 2, 4, 5}
_x000D_{1, 2, 4, 5}
_x000D_{2, 4, 5}
_x000D_ _x000D_### 7. 如何清空一个集合?
_x000D_可以使用clear()方法清空一个集合。例如:
_x000D_`python
_x000D_s = {1, 2, 3}
_x000D_s.clear()
_x000D_print(s)
_x000D_ _x000D_输出结果为:
_x000D_ _x000D_set()
_x000D_ _x000D_### 8. 集合和列表有什么区别?
_x000D_集合是无序的、不重复的元素集合,而列表是有序的、可重复的元素序列。集合的主要作用是去重和集合运算,而列表的主要作用是存储一组有序的元素。
_x000D_