python学习笔记——集合

创建集合

使用工厂方法 set()和 frozenset():


>>> s = set('cheeseshop')

>>> s

set(['c', 'e', 'h', 'o', 'p', 's'])

>>> t = frozenset('bookshop')

>>> t

frozenset(['b', 'h', 'k', 'o', 'p', 's'])

>>> type(s)

<type 'set'>

>>> type(t)

<type 'frozenset'>



更新集合

用各种集合内建的方法和操作符添加和删除集合的成员:


>>> s.add('z')

>>> s

set(['c', 'e', 'h', 'o', 'p', 's', 'z'])

>>> s.update('pypi')

>>> s

set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z'])

>>> s.remove('z')

>>> s

set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])

>>> s -= set('pypi')

>>> s

set(['c', 'e', 'h', 'o', 's'])

删除集合


del s

成员关系 (in, not in)


>>> s = set('cheeseshop')

>>> t = frozenset('bookshop')

>>> 'k' in s

False

>>> 'k' in t

True

>>> 'c' not in t

True

集合等价/不等价


>>> s == t

False

>>> s != t

True

>>> u = frozenset(s)

>>> s == u

True

>>> set('posh') == set('shop')

True

差补/相对补集( – )

两个集合(s 和t)的差补或相对补集是指一个集合C,该集合中的元素,只属于集合s,而不属于集合t。差符号有一个等价的方法,difference().


>>> s - t

set(['c', 'e'])

对称差分( ^ ):对称差分是集合的XOR

利用集合去除列表中的重复元素




>>> xs = [5, 8, 5, 1, 1, 4, 2, 4, 3, 2]

>>> set(xs)

set([1, 2, 3, 4, 5, 8])

>>> sorted(set(xs), key=xs.index) # 保持原来的顺序

[5, 8, 1, 4, 2, 3]

你可能感兴趣的:(python)