Python 集合
集合是Python中的一种内置数据类型。在数学中,集合是一组不同的对象。集合数据类型是Python对集合的实现。集合中的对象可以是任何数据类型。
在Python中,集合也是一种集合数据类型,类似于列表或元组。然而,它不是一个有序的集合,即无法通过其位置索引访问集合中的项目。集合对象是由花括号{}括起来的一个或多个不可变对象的集合。
示例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)
参数
- sequence - 一个列表、元组或字符串类型的对象
返回值
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
只有不可变对象才能用来构成一个set对象。任何数值类型、字符串和元组都是允许的,但不能将列表或字典放入set中。
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有一些特殊的运算符来操作集合,并且集合类中有不同的方法来执行对集合对象的元素进行添加、删除、更新操作。