Python - 集合


集合是 Python 中的内置数据类型之一。在数学中,集合是不同对象的集合。集合数据类型是Python对集合的实现。集合中的对象可以是任何数据类型。

Python 中的 Set 也是集合数据类型,例如列表或元组。但是,它不是有序集合,即集合中的项目或无法通过其位置索引访问的项目。集合对象是一个或多个用大括号 {} 括起来的不可变对象的集合。

实施例1

下面给出了集合对象的一些示例 -

s1 = {"Rohan", "Physics", 21, 69.75}
s2 = {1, 2, 3, 4, 5}
s3 = {"a", "b", "c", "d"}
s4 = {25.50, True, -55, 1+2j}
print (s1)
print (s2)
print (s3)
print (s4)

它将产生以下输出-

{'Physics', 21, 'Rohan', 69.75}
{1, 2, 3, 4, 5}
{'a', 'd', 'c', 'b'}
{25.5, -55, True, (1+2j)}

上面的结果表明,赋值对象中对象的顺序不一定保留在集合对象中。这是因为Python针对集合运算优化了集合的结构。

除了集合的字面表示(将项目保留在大括号内)之外,Python 的内置 set() 函数还构造集合对象。

set() 函数

set() 是内置函数之一。它接受任何序列对象(列表、元组或字符串)作为参数并返回一个集合对象

句法

Obj = set(sequence)

参数

  • 序列- 列表、元组或 str 类型的对象

返回值

set() 函数从序列中返回一个集合对象,并丢弃其中的重复元素。

实施例2

L1 = ["Rohan", "Physics", 21, 69.75]
s1 = set(L1)
T1 = (1, 2, 3, 4, 5)
s2 = set(T1)
string = "TutorialsPoint"
s3 = set(string)

print (s1)
print (s2)
print (s3)

它将产生以下输出-

{'Rohan', 69.75, 21, 'Physics'}
{1, 2, 3, 4, 5}
{'u', 'a', 'o', 'n', 'r', 's', 'T', 'P', 'i', 't', 'l'}

实施例3

集合是不同对象的集合。即使在集合中重复某个对象,也只会保留一个副本。

s2 = {1, 2, 3, 4, 5, 3,0, 1, 9}
s3 = {"a", "b", "c", "d", "b", "e", "a"}
print (s2)
print (s3)

它将产生以下输出-

{0, 1, 2, 3, 4, 5, 9}
{'a', 'b', 'd', 'c', 'e'}

实施例4

只有不可变对象才能构成集合对象。允许任何数字类型、字符串和元组,但不能将列表或字典放入集合中。

s1 = {1, 2, [3, 4, 5], 3,0, 1, 9}
print (s1)
s2 = {"Rohan", {"phy":50}}
print (s2)

它将产生以下输出-

   s1 = {1, 2, [3, 4, 5], 3,0, 1, 9}
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: unhashable type: 'list'
   s2 = {"Rohan", {"phy":50}}
        ^^^^^^^^^^^^^^^^^^^^^
TypeError: unhashable type: 'dict'

Python 引发 TypeError 并显示不可散列类型“list”或“dict”的消息。散列为不可变的项目生成一个唯一的编号,从而可以在计算机内存中进行快速搜索。Python 有内置的 hash() 函数。列表或字典不支持此功能。

即使可变对象不存储在集合中,集合本身也是可变对象。Python 有一个特殊的运算符来处理集合,并且集合类中有不同的方法来对集合对象的元素执行添加、删除、更新操作。