发表于 2018-8-12 13:50:30

Python学习:集合(set)

  python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.
  sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,set不记录元素位置或者插入点。因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的操作。
>>>x = set('spam')  
>>>y = set('ham')
  
>>>x,y
  
set(['a', 'p', 's', 'm'])
  
set(['a', 'h', 'm'])
  集合(set)的四大基本操作:
>>>z = x | y         #并集  
set(['a', 'p', 's', 'h', 'm'])
  
>>>z = x & y         #交集
  
set(['a', 'm'])
  
>>>z = x - y         #差集,项在x中,不再y中
  
set(['p', 's'])
  
>>>z = x ^ y         #对称差集,不是x、y共有的
  
set(['h', 's', 'p'])
  其他改变集合的方法intersection(), add(), update(), remove():
>>>x = set('abcde')  
>>>y = set('bdxyz')
  
>>>z = x.intersection(y)      #等同于x&y
  
set(['b', 'd'])
  
>>>z.add('spam')                #插入一个项目
  
set(['b', 'd', 'spam'])
  
>>>z.update(set(['X', 'Y']))    #按位置求并集
  
set(['Y', 'X', 'b', 'd', 'spam'])
  
>>>z.remove('b')                #根据值删除一个项目
  
set(['Y', 'X', 'd', 'spam'])
  set的包含与被包含:>或< 或issubset():
>>>A = set()  
>>>B = set(range(-5, 5))
  
>>>print A.issubset(B)
  
True
  不可变限制和冻结集合:
  集合只能包含不可变的(即可散列的)对象类型。因此,列表和字典都不能嵌入到集合中,但是如果你需要存储复合值的话,元组是可以嵌入的。
>>>A = set()  
>>>B =
  
>>>A.add(B)            #不能嵌套列表B
  
TypeError: unhashable type: 'list'
  
>>>C = (3,4,5,6)
  
>>>A.add(C)            #可以嵌套元组tuple对象
  
set()
页: [1]
查看完整版本: Python学习:集合(set)