灌云网站设计,如何自建网站卖产品,无锡定制网站制作公司,重庆市建设工程造价信息网公众号目录 集合
集合的定义
集合操作
集合的内建函数
集合与内置函数
集合练习-1
集合练习-2
集合练习-3 集合
集合的定义
学习关于 Python 集的所有内容#xff1b;如何创建它们、添加或删除其中的元素#xff0c;以及在 Python 中对集合执行的所有操作。
Python 中的集…目录 集合
集合的定义
集合操作
集合的内建函数
集合与内置函数
集合练习-1
集合练习-2
集合练习-3 集合
集合的定义
学习关于 Python 集的所有内容如何创建它们、添加或删除其中的元素以及在 Python 中对集合执行的所有操作。
Python 中的集合是什么
集合是项目的无序集合。每个元素都是唯一的没有重复项并且必须是不可变的不能更改。
但是集合本身是可变的。我们可以在其中添加或删除项目。
集合可用于执行数学集合运算例如并集交集对称差等。
如何创建集合
通过将所有项目元素放在大括号 {} 中并用逗号分隔或使用内置函数来创建集合 set()。
它可以具有任意数量的项目并且它们可以具有不同的类型整数浮点数元组字符串等。但是集合不能具有可变元素例如 list set 或 dictionary作为其元素。
dic1 {1, 2, 3}
dic2 {1.0, (1, 2, 3), Hello}
print(dic1)
print(dic2)输出
{1, 2, 3}
{1.0, (1, 2, 3), Hello} # 无重复集合
my_set {1,2,3,4,3,2}
print(my_set)# 我们可以从列表中生成集合
my_set set([1,2,3,2])
print(my_set)输出
{1, 2, 3, 4}
{1, 2, 3} 创建一个空集有点特殊。
空括号 {} 将在Python中创建一个空字典。为了建立一个没有任何元素的集合我们使用没有任何参数的 set() 函数。
x {} # 用{}初始化
print(type(x)) # 检查a的数据类型x set() # 初始化使用 set()
print(type(x)) # 检查a的数据类型输出
class dict
class set 集合操作
如何在 Python 中更改集合
集合是可变的。但由于它们是无序的因此索引没有意义。
我们无法使用索引或切片来访问或更改集合的元素这是集合不支持的操作。
我们可以使用 add() 方法添加单个元素使用 update() 方法添加多个元素。update() 方法可以采用元组列表字符串或其他集合作为其参数。在所有情况下都避免重复。
# 初始化 my_set
my_set {1,3}
print(my_set)# 增加一个元素
my_set.add(2)
print(my_set)# 增加多个元素
my_set.update([2,3,4])
print(my_set)# 增加 list、set、tuple
my_set.update([4,5], {1,6,8},(9,10))
print(my_set)输出
{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8, 9, 10} 从集合中删除元素
可以使用 discard() 和 remove() 方法从集合中删除特定项目。
两者之间的唯一区别是如果使用 discard()而项目不存在于集合中则它保持不变。但是 remove() 在这种情况下会引发错误。
set_1 {1,2,3,hello}
print(set_1.remove(1))
print(set_1)set_1.discard(hello)
print(set_1)输出
None
{2, 3, hello}
{2, 3} 同样我们可以使用 pop() 方法删除并返回一个项目。
集合为无序无法确定将弹出哪个项目。这是完全任意的。
我们还可以使用 clear() 方法删除集合中的所有项目。
set_2 {shell,2,5,bash}set_2.pop() # 使用pop方法删除一个元素并且随机输出
print(set_2)set_2.clear() #使用clear方法删除所有的元素
print(set_2)输出
{2, 5, shell}
set() Python 集合操作
集合可用于执行数学集合运算例如并集交集差和对称差。我们可以通过运算符或方法来实现。
集合并集
A 和 B 的并集是来自这两个集合的所有元素的集合。
并集是使用 | 操作符执行的。也可以使用 union() 方法来完成。
# 初始化 A 和 B
A {1, 2, 3, 4, 5}
B {4, 5, 6, 7, 8}# 使用 | 运算符
print(A | B)#使用union()方法进行并集操作
print(A.union(B))
print(B.union(A))输出
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8} 集合相交
A 和 B 的交集是在这两个集合中共有的一组元素。
交点使用 运算符执行。使用 intersection() 方法可以完成相同的操作。
x {1,2,3,4,5,6}
y {4,5,6,7,8,9}#使用进行交集操作
print(x y)#使用intersection()方法进行交集
print(x.intersection(y))
print(y.intersection(x))输出
{4, 5, 6}
{4, 5, 6}
{4, 5, 6} 集合差异
A 和 B 的差 A - B 是仅在 A 中但不在 B 中的一组元素。类似地B - A 是 B 中但不在 A 中的一组元素。
差异是使用 - 运算符执行的。使用 difference() 方法可以完成相同的操作。
x {1,2,3,4,5,6}
y {4,5,6,7,8,9}print(x - y)
print(x.difference(y))print(y - x)
print(y.difference(x))输出
{1, 2, 3}
{1, 2, 3}
{8, 9, 7}
{8, 9, 7} 集合对称差异
A 和 B 的对称差异是 A 和 B 中的一组元素但两者中的元素相同。
对称差使用 ^ 运算符执行。使用 symmetric_difference() 方法可以完成相同的操作。
x {1,2,3,4,5,6}
y {4,5,6,7,8,9}print(x ^ y)
print(y ^ x)print(x.symmetric_difference(y))
print(y.symmetric_difference(x))输出
{1, 2, 3, 7, 8, 9}
{1, 2, 3, 7, 8, 9}
{1, 2, 3, 7, 8, 9}
{1, 2, 3, 7, 8, 9} 集合的内建函数
不同的 Python 集合方法
集合方法很多上面已经使用了其中的一些方法。这是 set 集合对象可用的所有方法的列表。
方法描述add()将元素添加到集合中clear()从集合中删除所有元素copy()返回集合的副本difference()返回两个或多个集合的差作为新集合difference_update()从该集合中删除另一个集合的所有元素discard()如果元素是成员则从集合中删除它。如果元素不在集合中则不执行任何操作intersection()返回两个集合的交集作为新集合intersection_update()用自身和另一个的交集更新集合isdisjoint()如果两个集合的交点为空则返回 True否则返回 False。issubset()返回 True 另一个集合是否包含此集合issuperset()返回 True 此集合是否包含另一个集合pop()删除并返回一个任意的 set 元素。如果集合是空的调用 pop() 方法将会引发 KeyError 异常remove()从集合中删除一个元素。如果元素不是成员则引发一个 KeyErrorsymmetric_difference()将两个集合的对称差作为新集合返回symmetric_difference_update()用本身和另一个的对称差异更新一个集合union()返回新集合中集合的并集update()用自身和其他元素的并集更新集合 其他集合操作
集合会员资格测试
我们可以使用 in 关键字来测试项目是否存在于集合中。
# 初始化 my_set
my_set set(apple)# 检查“a”是否存在
print(a in my_set)# 检查“p”是否存在
print(p not in my_set)输出
True
False 遍历集合 使用 for 循环我们可以遍历集合中的每个项目。由于集合是无序的运行结果顺序可能不同
for x in set(hello):print(x)输出
h
o
e
l 集合与内置函数
内置函数如 all()、any()、enumerate()、len()、max()、min()、sort()、sum() 等常用来与 set 一起执行不同的任务。
功能描述all()如果集合的所有元素都为 True或者集合为空则返回 True。any()如果集合中的任何元素为 True则返回 True。 如果集合为空则返回False。enumerate()返回一个枚举对象。它包含成对的所有项的索引和值。len()返回集合中的长度项目数。max()返回集合中最大的项目。min()返回集合中最小的项目。sorted()从集合中的元素返回一个新的排序列表不对集合本身进行排序。sum()返回集合中所有元素的总和。
Python Frozenset
frozenset 是 Python 中的一种数据类型类似于 set但具有不可变性即一旦创建后不能被修改。与 set 不同frozenset 是一种不可变集合。
与 set 类型不同frozenset 类型的对象可以作为字典的 key也可以作为另一个集合的元素这是因为 frozenset 是不可变的具有哈希值可以进行哈希运算。
可以使用函数 Frozenset() 创建 Frozensets 。
此数据类型支持的方法如 copy()difference()intersection()isdisjoint()issubset()issuperset()symmetric_difference() 和 union()。由于不可变因此没有添加或删除元素的方法。
# 初始化 A 和 B
A frozenset([1, 2, 3, 4])
B frozenset([3, 4, 5, 6])print(A.isdisjoint(B)) # (使用isdisjoint()函数来判断两个集合是否存在交集如果存在返回false反之返回true)
print(A.difference(B)) # (差集)
print(A | B) # union()输出
False
frozenset({1, 2})
frozenset({1, 2, 3, 4, 5, 6}) 集合练习-1
集合中最大的元素描述
输入一个非空集合 my_set输出 my_set 中最大的元素。
my_set eval(input())
print(max(my_set))
# 直接使用max函数print(sorted(my_set)[-1])
使用 sorted(my_set) 对集合中的元素进行排序并取最后一个元素即最大值最后将其打印出来!
多种解法集合练习-2
集合运算描述
给你三个集合 my_dict1、my_dict2 和 my_dict3输出在前两个集合中都存在但不在第三个集合中的元素个数。
my_set1 eval(input())
my_set2 eval(input())
my_set3 eval(input())意思就是求set1和set2的交集再求与set3的差集输出差集的个数print(len((my_set1 my_set2) - my_set3))集合练习-3
集合中绝对值小于 10 的元素之和描述
给你一个整数集合 my_set输出集合中绝对值小于 10 的元素之和。
my_set eval(input())
sum_abs_lt_10 sum(x for x in my_set if abs(x) 10)
print(sum_abs_lt_10)
这段代码实现了以下功能1. eval(input()): 通过 input() 函数提示用户输入一个表达式然后 eval() 函数将这个表达式作为 Python 代码进行求值得到一个集合对象并将其赋值给变量 my_set。
用户输入的表达式应该是一个包含整数元素的集合例如 {1, 2, 3, 4, 5}。2. sum(x for x in my_set if abs(x) 10): 这段代码使用列表推导式来计算集合 my_set 中绝对值小于 10 的元素之和。具体地对于集合 my_set 中的每个元素 x
只有当 x 的绝对值小于 10 时才将这个 x 累加到求和结果中。3. print(sum_abs_lt_10): 最后将上一步计算得到的绝对值小于 10 的元素之和打印输出。