Python 集合 - 方法和示例

位置:首页>文章>详情   分类: Python教程 > 编程技术   阅读(286)   2023-06-26 07:54:28

Python 集是独特元素的无序集合。了解 Python 中的 Set datatype,创建和修改 Set 以及其他有用的 Set 操作。

1. 什么是集合

Python 中的集合是:

  • 独特的可哈希对象的无序集合
  • 未编入索引的集合
  • 用大括号或set()构造函数编写
# curly brackets
nameSet = {"alex", "brian", "charles"}

# set() constructor
nameSet = set(("alex", "brian", "charles"))

在内部,Set 是使用 Dictionary 实现的。如果我们仔细观察,Set 元素的要求与 Dictionary 键的要求相同。

集合不能存储可变项,例如 ListDictionary。但是,Sets 可以包含不可变的集合,例如 Tuple 的实例不可变集

2. 从集合中获取值

2.1.使用 for 循环迭代集合

由于 Sets 是无索引的集合,我们不能使用基于索引的获取操作和切片操作。因此,要从 Set 中获取值,我们可以使用 for loop 循环遍历它。

nameSet = {"alex", "brian", "charles"}
for name in nameSet:
  	print(name)

程序输出。

alex
brian
charles

2.2.使用 in 子句检查项目是否存在

nameSet = {"alex", "brian", "charles"}

print("brian" in nameSet)
print("david" in nameSet)

程序输出。

True
False

3. 添加集合中的项目

  • 要向 Set 添加新项目,请使用 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'}

4. 从集合中移除项目

要从 Set 中删除单个项目,我们可以使用以下方法:

  • remove() :如果要删除的项目不存在,则会引发错误。
  • discard() :如果要删除的项目不存在,则不会引发错误。
  • pop() :此方法将删除 Set 中的最后一个项目,删除的项目将作为方法调用的返回值。
  • clear() :它从 Set 中删除 ann 项,并将 set 转换为 Empty Set。
  • del keyword : 彻底删除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

5. 集合并集——加入两个集合

在 Python 中使用 union() 方法连接两个或多个集合。此方法返回一个新的 Set,其中包含两个 Set 中的所有项目。

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"evan", "frank"}

setUnion = nameSet1.union(nameSet2)
print(setUnion)

程序输出。

{'charles', 'frank', 'alex', 'evan', 'brian'}

6. Python 设置方法

Python Set 提供了以下内置方法:

6.1. Python 设置 add()

add() 方法向 Set 添加一个项目。

nameSet = {"alex", "brian", "charles"}

nameSet.add("david")
print(nameSet)

程序输出。

{'alex', 'brian', 'charles', 'david'}

6.2. Python 设置 clear()

clear() 方法从 Set 中删除所有项目,并使其为空 Set。

nameSet = {"alex", "brian", "charles"}

nameSet.clear()
print(nameSet)

程序输出。

set()

6.3. Python 集合 copy()

copy() 方法返回 Set 的浅表副本。

nameSet = {"alex", "brian", "charles"}

copySet = nameSet.copy()
print(copySet)

程序输出。

{'alex', 'brian', 'charles'}

6.4. Python 设置 difference()

difference() 方法返回一个 Set,其中包含两个 Set 之间的差异。

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}

diffSet = nameSet1.difference(nameSet2)
print(diffSet)

程序输出。

{'charles'}

6.5. Python 设置 difference_update()

difference_update() 方法删除给定集合中也包含在参数 Set 中的项目。

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}

nameSet1.difference_update(nameSet2)
print(nameSet1)

程序输出。

{'charles'}

6.6. Python 设置 discard()

discard() 方法从 Set 中删除指定的项目。

nameSet = {"alex", "brian", "charles"}

nameSet.discard("charles")
print(nameSet)

程序输出。

{'alex', 'brian'}

6.7. Python 集合 intersection()

intersection() 方法返回一个 Set,它是两个给定 Set 的交集。该方法与difference() 方法相反。

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}

diffSet = nameSet1.intersection(nameSet2)
print(diffSet)

程序输出。

{'alex', 'brian'}

6.8. Python 设置 intersection_update()

intersection_update() 删除给定 Set 中不存在于参数 Set 中的项目。此方法与 difference_update() 方法相反。

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}

nameSet1.intersection_update(nameSet2)
print(nameSet1)

程序输出。

{'alex', 'brian'}

6.9. Python 集合 isdisjoint()

isdisjoint() 方法检查两个集合是否有交集。如果两个 Set 中都不存在任何项目,则返回 True,否则返回 False。

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}

result = nameSet1.isdisjoint(nameSet2)
print(result)

程序输出。

False

6.10. Python 集合 issubset()

issubset() 方法检查参数 Set 是否包含此 Set。

nameSet1 = {"alex", "brian"}
nameSet2 = {"alex", "brian", "charles"}

result = nameSet1.issubset(nameSet2)
print(result)

程序输出。

True

6.11. Python 集合 issuperset()

issuperset() 方法检查此 Set 是否包含参数 Set。

nameSet1 = {"alex", "brian"}
nameSet2 = {"alex", "brian", "charles"}

result = nameSet1.issuperset(nameSet2)
print(result)

程序输出。

False

6.12. Python 设置 pop()

pop() 方法从 Set 中移除并返回最后一项。

nameSet = {"alex", "brian", "charles"}

print(nameSet.pop())
print(nameSet)

程序输出。

alex
{'charles', 'brian'}

6.13。 Python 设置 remove()

remove() 方法从 Set 中删除指定的。

nameSet = {"alex", "brian", "charles"}

nameSet.remove("alex")
print(nameSet)

程序输出。

{'charles', 'brian'}

6.14. Python 设置 symmetric_difference()

symmetric_difference() 方法返回一个 Set,其中包含两个 Set 中的所有项,但两个 Set 中都存在的项除外。

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}

result = nameSet1.symmetric_difference(nameSet2)
print(result)

程序输出。

{'david', 'charles'}

6.15。 Python 设置 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'}

6.16. Python 集合 union()

union() 方法返回一个包含两个集合并集的集合。

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}

result = nameSet1.union(nameSet2)
print(result)

程序输出。

{'alex', 'brian', 'david', 'charles'}

6.17. Python 设置 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

相关阅读

Python 集是独特元素的无序集合。了解 Python 中的 Set datatype,创建和修改 Set 以及其他有用的 Set 操作。 1. 什么是集合 Python 中的集合是: 独特的...
Python bin() 方法将给定的 integer 转换为等效的二进制 &lt; href="https://howtodoinjava.com/python-datatypes/pytho...
OrderedDict 维护添加到字典中的项目的插入顺序。在迭代或序列化时也会保留项目的顺序。 1.Python OrderedDict例子 OrderedDict 是 python 集合模块的...
在 Python 中,列表是: 有序的 索引(索引从 0 开始) 可变的 异构(列表中的项目可以是不同类型) 写成方括号之间以逗号分隔的值列表 1.创建列表 以下是在 Python 中创建列表的...
学习使用 Python httplib2 模块。 超文本传输协议 (HTTP) 是分布式协作超媒体信息系统的应用协议。 HTTP 是万维网数据通信的基础。 Python httplib2 模块提...
阅读、理解和练习这些 Python 示例,以更好地理解 Python 语言。这些简单的 Python 程序将帮助我们理解 Python 的基本编程概念。 此页面上的所有程序都经过测试,应该可以在...
1. Python整数值 在 Python 中,int 或整数是: 一个不带小数的整数 正、负或零 无限长 可以包含下划线以提高可读性 x = 10 y = 123456789876543...
1. Python 内置函数 蟒蛇绝对() 返回整数的绝对值,float;和复数的大小。 Python any() 函数 检查 Iterable 的至少一个元素是否为 True。 Python ...
Python pass 语句用于执行空语句。当我们不想在代码中的某个地方执行任何语句时,我们可以使用pass语句,但是Python要求我们指定一条语句以满足Syntax规则。 Python pa...
Python break 语句用于终止包含break 语句的循环。当在循环内执行break 语句时,程序执行会立即跳转到循环后的下一条语句。 如果 break 语句在嵌套循环内(一个循环在另一个...