Python内置类型集合set使用示例

在这里插入图片描述

集合类型的常用操作:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> s = set()
>>> s
set()
>>> type(s),len(s)
(<class 'set'>, 0)
>>> 
>>> s = {0,1,2,3}
>>> s
{0, 1, 2, 3}
>>> type(s),len(s)
(<class 'set'>, 4)
>>> s.add(4)
>>> s
{0, 1, 2, 3, 4}
>>> s.add(4)
>>> s
{0, 1, 2, 3, 4}
>>> s.clear()
>>> s
set()
>>> type(s),len(s)
(<class 'set'>, 0)
>>> s = {0,1,2,3}
>>> ss = s.copy()
>>> ss is s
False
>>> id(ss), id(s)
(2589345505576, 2589345508040)
>>> ss
{0, 1, 2, 3}
>>> s
{0, 1, 2, 3}
>>> s.add(55)
>>> s
{0, 1, 2, 3, 55}
>>> ss
{0, 1, 2, 3}
>>> ss.clear()
>>> ss
set()
>>> s
{0, 1, 2, 3, 55}
>>> s.clear()
>>> ss,s
(set(), set())
>>> s = {0,1,2,3}
>>> s
{0, 1, 2, 3}
>>> s.pop()
0
>>> s
{1, 2, 3}
>>> s.pop()
1
>>> s
{2, 3}
>>> s.pop()
2
>>> s
{3}
>>> s.pop()
3
>>> s
set()
>>> s.pop()
Traceback (most recent call last):
  File "<pyshell#38>", line 1, in <module>
    s.pop()
KeyError: 'pop from an empty set'
>>> 
>>> 
>>> s = {0,1,2,3}
>>> s.discard(0)
>>> s
{1, 2, 3}
>>> s.discard(0)
>>> s
{1, 2, 3}
>>> s.discard(1)
>>> s
{2, 3}
>>> 
>>> s = {0,1,2,3}
>>> s.remove(0)
>>> s
{1, 2, 3}
>>> s.remove(0)
Traceback (most recent call last):
  File "<pyshell#52>", line 1, in <module>
    s.remove(0)
KeyError: 0
>>> s
{1, 2, 3}
>>> s.remove(3)
>>> s
{1, 2}
>>> 
>>> 
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s1.isdisjoint(s2)
True
>>> s2.isdisjoint(s1)
True
>>> 
>>> s1.add(5)
>>> s1
{0, 1, 2, 3, 5}
>>> s2
{8, 5, 6, 7}
>>> s1.isdisjoint(s2)
False
>>> s2.isdisjoint(s1)
False
>>> s1 = {0,1,2,3}
>>> s2 = set()
>>> s1.isdisjoint(s2)
True
>>> s2.isdisjoint(s1)
True
>>> type({})
<class 'dict'>
>>> 
>>> type((,))
SyntaxError: invalid syntax
>>> (,)
SyntaxError: invalid syntax
>>> s2 = {5,6,7,8}
>>> s1 = {0,1,2,3}
>>> len(s1)
4
>>> len(s2)
4
>>> 5 in s1
False
>>> 1 in s1
True
>>> 5 not in s1
True
>>> 1 not in s1
False
>>> 
>>> 

集合之间子集、超集的判断方法:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s1 == s2
False
>>> s1
{0, 1, 2, 3}
>>> s2
{8, 5, 6, 7}
>>> s2 = {0,1,2,3}
>>> s1,s2
({0, 1, 2, 3}, {0, 1, 2, 3})
>>> s1 == s2
True
>>> s2 = {5,6,7,8}
>>> s1 = {6,5,7,8}
>>> s1 == s2
True
>>> s1 <= s2, s1.issubset(s2)
(True, True)
>>> s1 >= s2, s1.issuperset(s2)
(True, True)
>>> s1,s2
({8, 5, 6, 7}, {8, 5, 6, 7})
>>> s1 < s2, s1 > s2
(False, False)
>>> 
>>> s2 = {5,6,7,8}
>>> s1 = {5,6,7}
>>> s1,s2
({5, 6, 7}, {8, 5, 6, 7})
>>> s1 == s2
False
>>> s1 <= s2, s1.issubset(s2)
(True, True)
>>> s1 >= s2, s1.issuperset(s2)
(False, False)
>>> s1 < s2, s1 > s2
(True, False)
>>> 
>>> 

集合之间求并集:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> len(s1),len(s2)
(4, 4)
>>> s1 | s2
{0, 1, 2, 3, 5, 6, 7, 8}
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> s1.union(s2)
{0, 1, 2, 3, 5, 6, 7, 8}
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> s1 = {0,1,2,3,4}
>>> s2 = {4,5,6,7,8}
>>> s1,s2
({0, 1, 2, 3, 4}, {4, 5, 6, 7, 8})
>>> s1 | s2
{0, 1, 2, 3, 4, 5, 6, 7, 8}
>>> s1.union(s2)
{0, 1, 2, 3, 4, 5, 6, 7, 8}
>>> 
>>> s1,s2
({0, 1, 2, 3, 4}, {4, 5, 6, 7, 8})
>>> s1=|s2
SyntaxError: invalid syntax
>>> s1|=s2
>>> s1,s2
({0, 1, 2, 3, 4, 5, 6, 7, 8}, {4, 5, 6, 7, 8})
>>> 
>>> s1 = {0,1,2,3,4}
>>> s2 = {4,5,6,7,8}
>>> s1.update(s2)
>>> s1,s2
({0, 1, 2, 3, 4, 5, 6, 7, 8}, {4, 5, 6, 7, 8})
>>> 
>>> 
>>> 

集合之间求交集:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> s1&s2
set()
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> s1.intersection(s2)
set()
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> s1&=s2
>>> s1,s2
(set(), {8, 5, 6, 7})
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> s1.intersection_update(s2)
>>> s1,s2
(set(), {8, 5, 6, 7})
>>> 
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s1,s2
({0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1&s2
{3, 4, 5}
>>> s1,s2
({0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1.intersection(s2)
{3, 4, 5}
>>> s1,s2
({0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1&=s2
>>> s1,s2
({3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s = s1
>>> s1,s2
({0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1&=s2
>>> s
{3, 4, 5}
>>> s1,s2
({3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> 
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s = s1
>>> s,s1,s2
({0, 1, 2, 3, 4, 5}, {0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1.intersection_update(s2)
>>> s,s1,s2
({3, 4, 5}, {3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> 
>>> 
>>> 

集合之间求差集:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> s1 - s2
{0, 1, 2, 3}
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> s1.differernce(s2)
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    s1.differernce(s2)
AttributeError: 'set' object has no attribute 'differernce'
>>> s1.difference(s2)
{0, 1, 2, 3}
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> 
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s1 -= s2
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s1.difference_update(s2)
>>> s1,s2
({0, 1, 2, 3}, {8, 5, 6, 7})
>>> 
>>> 
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s1,s2
({0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1 - s2
{0, 1, 2}
>>> s1,s2
({0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1.differernce(s2)
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    s1.differernce(s2)
AttributeError: 'set' object has no attribute 'differernce'
>>> s1.difference(s2)
{0, 1, 2}
>>> s1,s2
({0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> 
>>> 
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s1,s2
({0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1 -= s2
>>> s1,s2
({0, 1, 2}, {3, 4, 5, 6, 7, 8})
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s = s1
>>> s,s1,s2
({0, 1, 2, 3, 4, 5}, {0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1 -= s2
>>> s,s1,s2
({0, 1, 2}, {0, 1, 2}, {3, 4, 5, 6, 7, 8})
>>> 
>>> 
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s = s1
>>> s,s1,s2
({0, 1, 2, 3, 4, 5}, {0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1.difference_update(s2)
>>> s,s1,s2
({0, 1, 2}, {0, 1, 2}, {3, 4, 5, 6, 7, 8})
>>> 
>>> 
>>> 

集合之间求对称差集:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s = s1
>>> s1 ^ s2
{0, 1, 2, 3, 5, 6, 7, 8}
>>> s,s1,s2
({0, 1, 2, 3}, {0, 1, 2, 3}, {8, 5, 6, 7})
>>> 
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s = s1
>>> s1.symmetric_difference(s2)
{0, 1, 2, 3, 5, 6, 7, 8}
>>> s,s1,s2
({0, 1, 2, 3}, {0, 1, 2, 3}, {8, 5, 6, 7})
>>> 
>>> 
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s = s1
>>> s1^=s2
>>> s,s1,s2
({0, 1, 2, 3, 5, 6, 7, 8}, {0, 1, 2, 3, 5, 6, 7, 8}, {8, 5, 6, 7})
>>> 
>>> s1 = {0,1,2,3}
>>> s2 = {5,6,7,8}
>>> s = s1
>>> s1.symmetric_difference_update(s2)
>>> s,s1,s2
({0, 1, 2, 3, 5, 6, 7, 8}, {0, 1, 2, 3, 5, 6, 7, 8}, {8, 5, 6, 7})
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s = s1
>>> s1 ^ s2
{0, 1, 2, 6, 7, 8}
>>> s,s1,s2
({0, 1, 2, 3, 4, 5}, {0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> 
>>> 
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s = s1
>>> s1.symmetric_difference(s2)
{0, 1, 2, 6, 7, 8}
>>> s,s1,s2
({0, 1, 2, 3, 4, 5}, {0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> 
>>> 
>>> 
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s = s1
>>> s1^=s2
>>> s,s1,s2
({0, 1, 2, 6, 7, 8}, {0, 1, 2, 6, 7, 8}, {3, 4, 5, 6, 7, 8})
>>> 
>>> 
>>> s1 = {0,1,2,3,4,5}
>>> s2 = {3,4,5,6,7,8}
>>> s = s1
>>> s,s1,s2
({0, 1, 2, 3, 4, 5}, {0, 1, 2, 3, 4, 5}, {3, 4, 5, 6, 7, 8})
>>> s1.symmetric_difference_update(s2)
>>> s,s1,s2
({0, 1, 2, 6, 7, 8}, {0, 1, 2, 6, 7, 8}, {3, 4, 5, 6, 7, 8})
>>> 
>>> 
>>> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值