集合类型的常用操作:
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) (, 0) >>> >>> s = {0,1,2,3} >>> s {0, 1, 2, 3} >>> type(s),len(s) ( , 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) ( , 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 " ", line 1, in 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 " ", line 1, in 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({}) >>> >>> 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 "", line 1, in
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 "", line 1, in
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})
>>>
>>>
>>>



