Python 集是独特元素的无序集合。了解 Python 中的 Set datatype,创建和修改 Set 以及其他有用的 Set 操作。
Python 中的集合是:
set()
构造函数编写# curly brackets nameSet = {"alex", "brian", "charles"} # set() constructor nameSet = set(("alex", "brian", "charles"))
在内部,Set
是使用 Dictionary
实现的。如果我们仔细观察,Set
元素的要求与 Dictionary
键的要求相同。
集合不能存储可变项,例如 List
或 Dictionary
。但是,Sets 可以包含不可变的集合,例如 Tuple
或 的实例不可变集
。
for
循环迭代集合由于 Sets 是无索引的集合,我们不能使用基于索引的获取操作和切片操作。因此,要从 Set 中获取值,我们可以使用 for loop
循环遍历它。
nameSet = {"alex", "brian", "charles"} for name in nameSet: print(name)
程序输出。
alex brian charles
in
子句检查项目是否存在nameSet = {"alex", "brian", "charles"} print("brian" in nameSet) print("david" in nameSet)
程序输出。
True False
add()
方法。update()
方法。nameSet = {"alex", "brian", "charles"} nameSet.add("david") print(nameSet) nameSet.update(["evan", "frank", "george"]) print(nameSet)
程序输出。
{'alex', 'charles', 'brian', 'david'} {'brian', 'alex', 'david', 'frank', 'george', 'charles', 'evan'}
要从 Set 中删除单个项目,我们可以使用以下方法:
nameSet = {"alex", "brian", "charles", "evan", "frank"} nameSet.remove("frank") print(nameSet) nameSet.discard("evan") print(nameSet) name = nameSet.pop() print(name) print(nameSet) nameSet.clear() print(nameSet) del nameSet print(nameSet)
程序输出。
{'evan', 'alex', 'charles', 'brian'} {'alex', 'charles', 'brian'} alex {'charles', 'brian'} set() Traceback (most recent call last): File "<string>", line 17, in <module> NameError: name 'nameSet' is not defined
在 Python 中使用 union()
方法连接两个或多个集合。此方法返回一个新的 Set,其中包含两个 Set 中的所有项目。
nameSet1 = {"alex", "brian", "charles"} nameSet2 = {"evan", "frank"} setUnion = nameSet1.union(nameSet2) print(setUnion)
程序输出。
{'charles', 'frank', 'alex', 'evan', 'brian'}
Python Set 提供了以下内置方法:
add()
add()
方法向 Set 添加一个项目。
nameSet = {"alex", "brian", "charles"} nameSet.add("david") print(nameSet)
程序输出。
{'alex', 'brian', 'charles', 'david'}
clear()
clear()
方法从 Set 中删除所有项目,并使其为空 Set。
nameSet = {"alex", "brian", "charles"} nameSet.clear() print(nameSet)
程序输出。
set()
copy()
copy()
方法返回 Set 的浅表副本。
nameSet = {"alex", "brian", "charles"} copySet = nameSet.copy() print(copySet)
程序输出。
{'alex', 'brian', 'charles'}
difference()
difference()
方法返回一个 Set,其中包含两个 Set 之间的差异。
nameSet1 = {"alex", "brian", "charles"} nameSet2 = {"alex", "brian", "david"} diffSet = nameSet1.difference(nameSet2) print(diffSet)
程序输出。
{'charles'}
difference_update()
difference_update()
方法删除给定集合中也包含在参数 Set 中的项目。
nameSet1 = {"alex", "brian", "charles"} nameSet2 = {"alex", "brian", "david"} nameSet1.difference_update(nameSet2) print(nameSet1)
程序输出。
{'charles'}
discard()
discard()
方法从 Set 中删除指定的项目。
nameSet = {"alex", "brian", "charles"} nameSet.discard("charles") print(nameSet)
程序输出。
{'alex', 'brian'}
intersection()
intersection()
方法返回一个 Set,它是两个给定 Set 的交集。该方法与difference()
方法相反。
nameSet1 = {"alex", "brian", "charles"} nameSet2 = {"alex", "brian", "david"} diffSet = nameSet1.intersection(nameSet2) print(diffSet)
程序输出。
{'alex', 'brian'}
intersection_update()
intersection_update()
删除给定 Set 中不存在于参数 Set 中的项目。此方法与 difference_update()
方法相反。
nameSet1 = {"alex", "brian", "charles"} nameSet2 = {"alex", "brian", "david"} nameSet1.intersection_update(nameSet2) print(nameSet1)
程序输出。
{'alex', 'brian'}
isdisjoint()
isdisjoint()
方法检查两个集合是否有交集。如果两个 Set 中都不存在任何项目,则返回 True
,否则返回 False。
nameSet1 = {"alex", "brian", "charles"} nameSet2 = {"alex", "brian", "david"} result = nameSet1.isdisjoint(nameSet2) print(result)
程序输出。
False
issubset()
issubset()
方法检查参数 Set 是否包含此 Set。
nameSet1 = {"alex", "brian"} nameSet2 = {"alex", "brian", "charles"} result = nameSet1.issubset(nameSet2) print(result)
程序输出。
True
issuperset()
issuperset()
方法检查此 Set 是否包含参数 Set。
nameSet1 = {"alex", "brian"} nameSet2 = {"alex", "brian", "charles"} result = nameSet1.issuperset(nameSet2) print(result)
程序输出。
False
pop()
pop()
方法从 Set 中移除并返回最后一项。
nameSet = {"alex", "brian", "charles"} print(nameSet.pop()) print(nameSet)
程序输出。
alex {'charles', 'brian'}
remove()
remove()
方法从 Set 中删除指定的。
nameSet = {"alex", "brian", "charles"} nameSet.remove("alex") print(nameSet)
程序输出。
{'charles', 'brian'}
symmetric_difference()
symmetric_difference()
方法返回一个 Set,其中包含两个 Set 中的所有项,但两个 Set 中都存在的项除外。
nameSet1 = {"alex", "brian", "charles"} nameSet2 = {"alex", "brian", "david"} result = nameSet1.symmetric_difference(nameSet2) print(result)
程序输出。
{'david', 'charles'}
symmetric_difference_update()
symmetric_difference_update()
方法删除此 Set 中存在于两个 Set 中的项目。它还会插入两个 Sets. 中都不存在的项目。
nameSet1 = {"alex", "brian", "charles"} nameSet2 = {"alex", "brian", "david"} nameSet1.symmetric_difference_update(nameSet2) print(nameSet1)
程序输出。
{'david', 'charles'}
union()
union()
方法返回一个包含两个集合并集的集合。
nameSet1 = {"alex", "brian", "charles"} nameSet2 = {"alex", "brian", "david"} result = nameSet1.union(nameSet2) print(result)
程序输出。
{'alex', 'brian', 'david', 'charles'}
update()
update()
方法用这个集合和其他集合的并集更新给定的集合。
nameSet1 = {"alex", "brian", "charles"} nameSet2 = {"alex", "brian", "david"} nameSet1.update(nameSet2) print(nameSet1)
程序输出。
{'alex', 'brian', 'david', 'charles'}
快乐学习!!
地址:https://www.cundage.com/article/python-set.html