隐藏

set( )函数

发布:2024/11/30 13:05:50作者:管理员 来源:本站 浏览次数:186

set( )函数


set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。基本功能包括关系测试和消除重复元素。集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。


语法:


set(iterable)


   1


参数:


iterable - 必需。序列、集合或迭代器对象。


a = set({1,2,3,4,5,6,7,5,4,6,2,1})

print(a)


  


'

运行


输出结果为:


{1, 2, 3, 4, 5, 6, 7}




'

运行


一、构造集合


可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。


1、使用大括号{}


basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}




print(basket)  # {'apple', 'orange', 'banana', 'pear'}


  


'

运行


当使用print()函数打印输出时,会自动将集合中重复的元素去除,且每次打印返回的顺序并不和初始的一致。


2、使用set()函数


fruit = set(("apple", "banana", "cherry"))  # 请留意这个双括号




print(fruit)  # {'banana', 'apple', 'cherry'}


 


'

运行


在使用set()函数创建集合时,一定要注意双括号。

二、向 set 集合中添加元素


set 集合中添加元素,可以使用 set 类型提供的 add() 方法实现,该方法的语法格式为:


setname.add(element)




其中,setname 表示要添加元素的集合,element 表示要添加的元素内容。


需要注意的是,使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据,否则 Python 解释器会报 TypeError 错误。例如:


a = {1,2,3}a.add((1,2))print(a)a.add([1,2])print(a)




运行结果为:


{(1, 2), 1, 2, 3}

Traceback (most recent call last):

File "C:\Users\mengma\Desktop\1.py", line 4, in <module>

 a.add([1,2])

TypeError: unhashable type: 'list'


 


三、从set集合中删除元素


删除现有 set 集合中的指定元素,可以使用 remove() 方法,该方法的语法格式如下:


setname.remove(element)




使用此方法删除集合中元素,需要注意的是,如果被删除元素本就不包含在集合中,则此方法会抛出 KeyError 错误,例如:


a = {1,2,3}

a.remove(1)

print(a)

a.remove(1)

print(a)


 


运行结果为:


{2, 3}

Traceback (most recent call last):

File "C:\Users\mengma\Desktop\1.py", line 4, in <module>

 a.remove(1)

KeyError: 1


  


上面程序中,由于集合中的元素 1 已被删除,因此当再次尝试使用 remove() 方法删除时,会引发 KeyError 错误。


如果我们不想在删除失败时令解释器提示 KeyError 错误,还可以使用 discard() 方法,此方法和 remove() 方法的用法完全相同,唯一的区别就是,当删除集合中元素失败时,此方法不会抛出任何错误。


例如:


a = {1,2,3}a.remove(1)print(a)a.discard(1)print(a)




运行结果为:


{2, 3}

{2, 3}




'

运行


四、清空set集合中的所有元素


清空set 集合中所有的元素,可以使用 clear() 方法,该方法的语法格式如下:


setname.clear(element)


  


使用此方法清空集合中元素,需要注意的是,set()才表示空集合,{}表示的是空字典:


set1 = {1,2,3}

set1.clear()

print(set1)


 


运行结果为:


set()




'

运行


五、拷贝set集合中的元素


拷贝set 集合中所有的元素,可以使用 capy() 方法,该方法的语法格式如下:


setname2 = .setname1.copy(element)




使用此方法拷贝集合中元素是,拷贝 set1 集合给 set2:


set1 = {1,2,3}

set2 = set1.copy()

print(set1)

set1.add(4)

print(set1)

print(set2)


 


'

运行


运行结果为:


{1, 2, 3}

{1, 2, 3, 4}

{1, 2, 3}


 


'

运行


**注意:**详见


Python set集合方法详解(全) (biancheng.net)


Python的set集合详解 - 知乎 (zhihu.com)


【python】集合set详解(超详细)_python set 集合-CSDN博客


>>> x = set('eleven')

>>> y = set('twelve')

>>> x,y

({'l', 'e', 'n', 'v'}, {'e', 'v', 'l', 't', 'w'})

>>> x & y  #交集

{'l', 'e', 'v'}

>>> x | y  #并集

{'e', 'v', 'n', 'l', 't', 'w'}

>>> x - y  #差集

{'n'}

>>> y -x   #差集

{'t', 'w'}

>>> x ^ y  #补集

{'t', 'n', 'w'}

>>> y ^ x  #补集

{'w', 'n', 't'}


  


交集 & : x&y,返回一个新的集合,包括同时在集合 x 和y中的共同元素。


并集 | : x|y,返回一个新的集合,包括集合 x 和 y 中所有元素。


差集 - : x-y,返回一个新的集合,包括在集合 x 中但不在集合 y 中的元素。


补集 ^ : x^y,返回一个新的集合,包括集合 x 和 y 的非共同元素。

六、创建空集合


>>> s=set()

>>> s

set()

>>> s1=set([]) #列表

>>> s1

set()

>>> s2=set(()) #元组

>>> s2

set()

>>> s3=set({}) #字典

>>> s3

set()


  


**注意:**想要创建空集合,你必须使用 set() 而不是 {}。后者用于创建空字典,我们在后面介绍的一种数据结构。

七、创建非空集合


即列表,元组,字典不在是空值,举两个例子


>>> s1=set([1,2,3,4])

>>> s1

{1, 2, 3, 4}


>>> s3=set({'a':2,'b':3,'c':4})

>>> s3

{'c', 'a', 'b'}


  


注:字典转set集合,需要注意的是,只取了字典的key,相当于将字典中的dict.keys()列表转成set集合。