Python-集合

目录:https://www.jianshu.com/p/863c446364a8

一、集合

集合(set)是一个无序的不重复元素序列,创建集合可以使用大括号{ }或者set()函数

注意:创建一个空集合必须用 set()而不是{ },因为{ }是用来创建一个空字典。

创建一个集合:

set1={value1,value2,value3,...}

或者

set2=set(value)       #元素不能为纯数字

实例:

  #集合的去重

>>> colors={"red","yellow","green","red","black","blue","green"}

>>> print(colors)

{'blue', 'black', 'green', 'yellow', 'red'}       

#快速判断元素是否在集合内

>>>print("red" in colors)

True

>>> print("pink" in colors)

False

#两个集合间的运算

>>> a=set("amliphgd")

>>> b=set("dnprtakf")

>>> a

{'l', 'd', 'm', 'a', 'g', 'h', 'p', 'i'}

>>> b

{'n', 'r', 'a', 't', 'k', 'p', 'f', 'd'}

#差集(集合a中包含而集合b中不包含的元素)

>>> a-b

{'l', 'm', 'h', 'g', 'i'}

#并集(包含集合a中和集合b中所有不重复的元素)

>>>a | b

{'n', 'l', 'd', 'r', 'm', 'a', 't', 'g', 'k', 'h', 'p', 'f', 'i'}

#交集 (集合a和集合b中重复的元素)

>>> a & b

{'p', 'a', 'd'}

#集合a和集合b中所有元素,不包含公共元素

>>> a ^ b

{'n', 'l', 'r', 'm', 't', 'g', 'k', 'h', 'f', 'i'}

二、集合的内置函数

(1)# add()  为集合添加元素

>>> set1={1,2,3,4,5}

>>> set2={3,4,5,6,7}

>>> set2.add(8)

>>> set2

{3, 4, 5, 6, 7, 8}

(2)#clear()  清除集合中的所有元素

>>> set3={1,2,3}

>>> set3.clear()

>>> set3

set()

(3)#copy()  拷贝一个集合

>>> set2={3,4,5,6,7,8}

>>> set3=set2.copy()

>>> set3

{3, 4, 5, 6, 7, 8}

(4)#update()  给集合添加元素

>>> set3={3, 4, 5, 6, 7, 8}

>>> set3.update([9])                 #这里不可以是纯数字

>>> set3

{3, 4, 5, 6, 7, 8, 9}

(5)#pop()    一般删除集合的第一个元素,并且有返回值(由于集合没有索引,也可以说删除随机一个元素)

>>>set3={3, 4, 5, 6, 7, 8, 9}

>>> set3.pop()

3

>>> set3

{4, 5, 6, 7, 8, 9}

(6)#remove() 删除指定元素

>>>set3={4, 5, 6, 7, 8, 9}

>>> set3.remove(4)

>>> set3

{5, 6, 7, 8, 9}

(7)#discard() 删除指定元素 (用法与remove一样)

>>>set3={5, 6, 7, 8, 9}

>>> set3.remove(9)

>>> set3

{5, 6, 7, 8}

(8)#difference() 返回多个集合的差集

>>> set1={1, 2, 3, 4, 5}

>>> set2={3, 4, 5, 6, 7, 8}

>>> set1.difference(set2)

{1, 2}

(9)#difference_update()   移除集合中的元素,该元素在指定的集合也存在。

>>> set1={1, 2, 3, 4, 5}

>>> set2={3, 4, 5, 6, 7, 8}

>>> set1.difference_update(set2)

>>> set1

{1, 2}     #  #将difference()的运行结果赋给set1

(10)intersection()   返回集合的交集

>>> set4={1,2,3,4,5}

>>> set5={3,4,5,6,7}

>>> set4.intersection(set5)

{3, 4, 5}

(11)intersection_update()  删除集合中的元素,该元素在指定的集合中不存在。

>>> set4={1,2,3,4,5}

>>> set5={3,4,5,6,7}

>>> set4.intersection_update(set5)

>>> set4

{3, 4, 5}                 #将intersection的运行结果赋给set4

(12)#symmetric_difference()  返回两个集合中不重复的元素集合。

>>> set6={1,2,3,4,5}

>>> set7={3,4,5,6,7}

>>> set6.symmetric_difference(set7)

{1, 2, 6, 7}

(13) #symmetric_difference_update()   移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

>>> set6={1,2,3,4,5}

>>> set7={3,4,5,6,7}

>>> set6.symmetric_difference_update(set7)

>>> set6

{1, 2, 6, 7}           #将symmetric_difference的运行结果赋给set6

(14)#union()   返回两个集合的并集

>>> set6={1, 2, 6, 7}

>>> set7={3, 4, 5, 6, 7}

>>> set6.union(set7)

{1, 2, 3, 4, 5, 6, 7}                   #返回的是set6和set7集合的所有元素,不包括重复项

(15)#isdisjoint()   判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

>>> set6={1, 2, 6, 7}

>>> set7={3, 4, 5, 6, 7}

>>> set6.isdisjoint(set7)

False                                                 #为True的条件为set6和set7没有重复项

(16) #issubset()   判断指定集合是否为该方法参数集合的子集。

>>> set8={1,2,3,4,5}

>>> set9={3,4,5}

>>> set9.issubset(set8)

True                        #set9的所有元素set8必须都有才返回True

(17) #issuperset()    判断该方法的参数集合是否为指定集合的子集

>>> set8={1,2,3,4,5}

>>> set9={3,4,5}

>>> set9.issuperset(set8)

False                                    #issubset()的反义词

你可能感兴趣的:(Python-集合)