Python3集合魔法(函数)

目录

文章目录

1. len(__object)函数
说明:计算集合不重复元素的个数(计算集合去重之后的元素个数)。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
print(type(set1),len(set1),set1)

set2={'a', 'a', 'd', 'e', 5}
print(type(set2),len(set2),set2)

运行结果如下:

<class 'set'> 5 {5, 'd', 'b', 'a', 'e'}
<class 'set'> 4 {'e', 5, 'd', 'a'}
2. add(self,element)函数
说明:用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。

element – 必需,要添加的元素。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
print(type(set1),set1,len(set1))

set1.add('eied')
print(type(set1),set1,len(set1))

运行结果如下:

<class 'set'> {5, 'a', 'b', 'd', 'e'} 5
<class 'set'> {5, 'a', 'b', 'd', 'e', 'eied'} 6
3. update(self,element)函数
说明:也可以用于给集合添加元素,element 可以有多个,用逗号分开,且参数可以是列表,元组,字典,集合等。

如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
print(type(set1),set1)

set1.update('g','h')    #添加多个字符串元素
print(type(set1),set1)

set1.update(['u',3])    #添加列表元素
print(type(set1),set1)

set1.update((1,9.2))      #添加元组元素
print(type(set1),set1)

set1.update({'name':'yuki'})     #添加字典元素
print(type(set1),set1)

set1.update({'suno',100})    #添加集合元素
print(type(set1),set1)
<class 'set'> {5, 'd', 'a', 'e', 'b'}
<class 'set'> {'h', 5, 'd', 'a', 'g', 'e', 'b'}
<class 'set'> {'h', 3, 5, 'd', 'u', 'a', 'g', 'e', 'b'}
<class 'set'> {1, 'h', 3, 5, 'd', 'u', 9.2, 'a', 'g', 'e', 'b'}
<class 'set'> {1, 'h', 3, 5, 'd', 'u', 9.2, 'a', 'g', 'e', 'name', 'b'}
<class 'set'> {1, 'h', 3, 5, 100, 'd', 'suno', 'u', 9.2, 'a', 'g', 'e', 'name', 'b'}
4. clear(self)函数
说明:移除集合中的所有元素。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
print(type(set1),set1,len(set1))

set1.clear()
print(type(set1),set1,len(set1))

运行结果如下:

<class 'set'> {5, 'e', 'b', 'a', 'd'} 5
<class 'set'> set() 0
5. copy(self)函数
说明:拷贝一个集合。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
set2=set1.copy()
print(type(set1),set1,len(set1))
print(type(set2),set2,len(set2))

运行结果如下:

<class 'set'> {5, 'e', 'a', 'b', 'd'} 5
<class 'set'> {'d', 5, 'e', 'a', 'b'} 5
6.remove(self,element )
说明:将某个元素从集合中移除,如果元素不存在,则会发生错误。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'a', 'd', 'e', 5}
print(type(set1),set1,len(set1))

set1.remove('a')
print(type(set1),set1,len(set1))

#set1.remove('au')  #移除的元素不存在,则会发生错误
#print(type(set1),set1,len(set1))

运行结果如下:

<class 'set'> {'a', 5, 'e', 'd'} 4
<class 'set'> {5, 'e', 'd'} 3
7. discard(self,__set)函数
说明:移除集合中的元素,且如果元素不存在,不会发生错误。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'a', 'd', 'e', 5}
print(type(set1),set1,len(set1))

set1.discard('a')
print(type(set1),set1,len(set1))

set1.discard('au')  #移除的元素不存在,则会发生错误
print(type(set1),set1,len(set1))

运行结果如下:

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'a', 'd', 'e', 5}
print(type(set1),set1,len(set1))

set1.discard('a')
print(type(set1),set1,len(set1))

set1.discard('au')  #移除的元素不存在,则会发生错误
print(type(set1),set1,len(set1))
8. pop(self,__set)函数
说明:随机移除集合的一个元素。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'e', 5.9,'wgdo','apple','egg'}
print(type(test),test,len(test))

test.pop()
print(type(test),test,len(test))

test.pop()
print(type(test),test,len(test))

运行结果如下:

<class 'set'> {5.9, 'e', 'egg', 'wgdo', 'apple'} 5
<class 'set'> {'e', 'egg', 'wgdo', 'apple'} 4
<class 'set'> {'egg', 'wgdo', 'apple'} 3
9. difference(self,__set)函数
说明:返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合中。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
set2={'c', 'b', 'd', 'f', 2,8}
print(type(set1),set1,len(set1))

set3=set1.difference(set2)  # 相当于set1-set2,返回一个集合,元素包含在集合set1 ,但不在集合set2中。
set4=set2.difference(set1)	# 相当于set2-set1,返回一个集合,元素包含在集合set2 ,但不在集合set1中。
print(type(set3),set3,len(set3))
print(type(set4),set4,len(set4))

运行结果如下:

<class 'set'> {5, 'e', 'd', 'a', 'b'} 5
<class 'set'> {'a', 5, 'e'} 3
<class 'set'> {8, 2, 'f', 'c'} 4
10. difference_update(self,__set)函数
说明:移除两个集合中都存在的元素。

difference_update() 方法与 difference() 方法的区别
difference(self,__set) 方法返回一个移除相同元素的新集合;
difference_update(self,__set) 方法是直接在原来的集合中移除元素,没有返回值。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
set2={'c', 'b', 'd', 'f', 2,8}
print(type(set1),set1,len(set1))

set1.difference_update(set2)        # 相当于在集合set1中移除set1和set2的公共元素。
print(type(set1),set1,len(set1))

运行结果如下:

<class 'set'> {'a', 'e', 5, 'd', 'b'} 5
<class 'set'> {'a', 'e', 5} 3
11. intersection(self,__set)函数
说明:返回两个或多个集合(多个集用逗号隔开)中都包含的元素,即交集。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
set2={'c', 'b', 'd', 'f', 2,8}
print(type(set1),set1,len(set1))

set3=set1.intersection(set2)
print(type(set3),set3,len(set3))   # 相当于set1&set2,返回一个集合,元素既包含在集合set1 ,也包含在集合set2中

运行结果如下:

<class 'set'> {'d', 'b', 5, 'e', 'a'} 5
<class 'set'> {'d', 'b'} 2
12. intersection_update(self,__set)函数
说明:获取两个或多个集合(多个集用逗号隔开)中都重叠的元素,即计算交集。

intersection_update() 方法和 intersection() 方法的区别
intersection() 方法是返回一个新的集合,而 intersection_update() 方法是在原始的集合上移除不重叠的元素。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
set2={'c', 'b', 'd', 'f', 2,8}
print(type(set1),set1,len(set1))

set1.intersection_update(set2)
print(type(set1),set1,len(set1))

运行结果如下:

<class 'set'> {'e', 5, 'd', 'b', 'a'} 5
<class 'set'> {'d', 'b'} 2
13. intersection_update(self,__set)函数
说明:返回两个集合或多合集(多个合集用逗号隔开)的并集,即包含了所有集合的元素,重复的元素只会出现一次。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'e', 5.9,'wgdo'}
set2={5,'f', 'b', 'e',8}
print(type(set1),set1,len(set1))
print(type(set2),set2,len(set2))

set3=set1.union(set2)
print(type(set3),set3,len(set3))

运行结果如下:

<class 'set'> {5.9, 'e', 'wgdo'} 3
<class 'set'> {5, 8, 'f', 'e', 'b'} 5
<class 'set'> {5.9, 5, 8, 'f', 'e', 'b', 'wgdo'} 7
14. symmetric_difference(self,__set)函数
说明:返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

aset={'b', 18, 'c', 'd', 'e'}
print(type(aset),aset,len(aset))

bset={'f', 'b', 13, 'c'}
print(type(bset),bset,len(bset))

cset=aset.symmetric_difference(bset)   #相当于aset^bset,aset 和 bset 中不同时存在的元素
print(type(cset),cset,len(cset))

运行结果如下:

<class 'set'> {'c', 'b', 'e', 18, 'd'} 5
<class 'set'> {'c', 'b', 13, 'f'} 4
<class 'set'> {'e', 'd', 18, 'f', 13} 5
15. symmetric_difference_update(self,__set)函数
说明:移除当前集合中在另外一个指定集合中存在的相同元素,并将另外一个指定集合中不同的元素插入到当前集合中。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

aset={'b', 18, 'c', 'd', 'e'}
print(type(aset),aset,len(aset))

bset={'f', 'b', 13, 'c'}
print(type(bset),bset,len(bset))

aset.symmetric_difference_update(bset)
print(type(aset),aset,len(aset))

运行结果如下:

<class 'set'> {'b', 'c', 'd', 18, 'e'} 5
<class 'set'> {'b', 'c', 13, 'f'} 4
<class 'set'> {'f', 13, 'd', 18, 'e'} 5
16. isdisjoint(self,__set)函数
说明:判断两个集合是否包含相同的元素,如果不存在相同元素返回 True,如果存在相同元素返回False。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
set2={'c', 'b', 'd', 'f', 2,8}

result=set1.isdisjoint(set2)
print(result)


set1={'a', 'b', 'd', 'e', 5}
set2={'c', 2,8}

result=set1.isdisjoint(set2)
print(result)

运行结果如下:

False
True
17. issubset(self,__set)函数
说明:判断一个集合的所有元素是否都包含在另外一个集合中,如果是则返回 True,否则返回 False。就是判断一个集合是否是另一个集合的子集。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'e', 5}
set2={5,'f', 'b', 'd', 'e', 2,8}

result=set1.issubset(set2)
print(result)


set1={'e', 5,'h'}
set2={5,'f', 'b', 'd', 'e', 2,8}

result=set1.issubset(set2)
print(result)

运行结果如下:

True
False
18. issuperset(self,__set)函数
说明:判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'e', 5}
set2={5,'f', 'b', 'd', 'e', 2,8}

result=set2.issubset(set1)  ###
print(result)

result=set2.issuperset(set1)  ###
print(result)

运行结果如下:

False
True
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值