乐趣区

关于人工智能:33-集合Set

汇合(Set)是 Python 中的一个十分实用的数据结构,它是一个无序的、不反复的元素序列。汇合用大括号 {} 示意,或者用 set() 函数创立一个空集合。汇合的元素必须是不可变类型,例如整数、浮点数、字符串、元组等。

3.3.1 创立汇合

创立汇合的办法有两种:

  1. 应用大括号 {} 突围元素,例如:
fruit_set = {"apple", "banana", "cherry"}
print(fruit_set)  # 输入:{'apple', 'banana', 'cherry'}
  1. 应用 set() 函数创立空集合或将其余序列转换为汇合,例如:
empty_set = set()
print(empty_set)  # 输入:set()

number_list = [1, 2, 2, 3, 4, 5, 5, 6]
number_set = set(number_list)
print(number_set)  # 输入:{1, 2, 3, 4, 5, 6}

3.3.2 罕用汇合操作

  • 增加元素:应用 add() 办法增加一个元素。
fruit_set = {"apple", "banana", "cherry"}
fruit_set.add("orange")
print(fruit_set)  # 输入:{'apple', 'banana', 'cherry', 'orange'}
  • 删除元素:应用 remove() 办法删除指定元素。如果元素不存在,会抛出 KeyError 异样。应用 discard() 办法删除指定元素,如果元素不存在,则不执行任何操作。
fruit_set = {"apple", "banana", "cherry"}
fruit_set.remove("banana")
print(fruit_set)  # 输入:{'apple', 'cherry'}

fruit_set.discard("orange")
print(fruit_set)  # 输入:{'apple', 'cherry'}
  • 清空集合:应用 clear() 办法清空集合。
fruit_set = {"apple", "banana", "cherry"}
fruit_set.clear()
print(fruit_set)  # 输入:set()
  • 判断元素是否在汇合中:应用 in 关键字。
fruit_set = {"apple", "banana", "cherry"}
print("apple" in fruit_set)  # 输入:True
print("orange" in fruit_set)  # 输入:False

3.3.3 汇合之间的关系

汇合之间能够进行并集、交加、差集和对称差等操作。

  • 并集(Union):应用 | 运算符或 union() 办法。
A = {1, 2, 3}
B = {3, 4, 5}
C = A | B
print(C)  # 输入:{1, 2, 3, 4, 5}

D = A.union(B)
print(D)  # 输入:{1, 2, 3, 4, 5}
  • 交加(Intersection):应用 & 运算符或 intersection() 办法。
A = {1, 2, 3}
B = {3, 4, 5}
C = A & B
print(C)  # 输入:{3}

D = A.intersection(B)
print(D)  # 输入:{3}
  • 差集(Difference):应用 - 运算符或 difference() 办法。
A = {1, 2, 3}
B = {3, 4, 5}
C = A - B
print(C)  # 输入:{1, 2}

D = A.difference(B)
print(D)  # 输入:{1, 2}
  • 对称差(Symmetric Difference):应用 ^ 运算符或 symmetric_difference() 办法。
A = {1, 2, 3}
B = {3, 4, 5}
C = A ^ B
print(C)  # 输入:{1, 2, 4, 5}

D = A.symmetric_difference(B)
print(D)  # 输入:{1, 2, 4, 5}

3.3.4 汇合推导式

汇合推导式是一种简洁的创立汇合的办法,相似于列表推导式。汇合推导式应用大括号 {} 突围,并在其中搁置表达式和循环语句。例如,创立一个蕴含 1 到 10 的平方数的汇合:

squares = {x**2 for x in range(1, 11)}
print(squares)  # 输入:{1, 64, 4, 36, 100, 9, 16, 49, 81, 25}

你能够在汇合推导式中应用条件语句,例如,创立一个蕴含 1 到 10 中偶数平方数的汇合:

even_squares = {x**2 for x in range(1, 11) if x % 2 == 0}
print(even_squares)  # 输入:{64, 4, 36, 100, 16}

当初你曾经理解了 Python 汇合的基本概念和操作。汇合提供了一种不便的办法来存储不反复的元素,并在须要时执行汇合操作。通过实际和学习更多实例,你将可能更熟练地使用 Python 汇合解决问题。
举荐浏览:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

退出移动版