09-集合

创建集合

集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

# 集合中的元素不可重复
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)   

# 创建空的集合不能使用{}
item1 = {}
item2 = set()
print(type(item1))
print(type(item2))

执行结果:

{'apple', 'orange', 'banana', 'pear'}
<class 'dict'>
<class 'set'>

集合运算

x = set('abcde')
y = set('bdxyz')

# Difference 差集
print(x - y)

# Union 并集
print(x | y)
      
# Intersection 交集
print( x & y  )

# Symmetric difference (XOR) 补集
print(x ^ y )

执行结果:

{'c', 'e', 'a'}
{'d', 'z', 'e', 'c', 'x', 'b', 'a', 'y'}
{'d', 'b'}
{'z', 'e', 'x', 'c', 'a', 'y'}

添加和移除元素

添加元素

语法格式如下:

s.add( x )

将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

thisset = set(("Google", "ali", "baidu"))
thisset.add("Facebook")
print(thisset)

thisset.add("Facebook")
print(thisset)

执行结果:

{'Google', 'baidu', 'ali', 'Facebook'}
{'Google', 'baidu', 'ali', 'Facebook'}

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:

s.update( x )
thisset = set(("Google", "ali", "baidu"))
thisset.update({1,3})
print(thisset)

thisset.update([1,4],[5,6])  
print(thisset)

执行结果:

{'Google', 'baidu', 3, 'ali', 1}
{'baidu', 1, 3, 4, 5, 6, 'Google', 'ali'}

移除元素

移除指定的元素,元素不存在时报错

语法格式如下:

s.remove( x )

将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。

thisset = set(("Google", "ali", "baidu"))
thisset.remove("ali")
print(thisset)

# 不存在会发生错误
thisset.remove("Facebook")   

执行结果:

{'Google', 'baidu'}
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-25-ed86689b10a6> in <module>()
      3 print(thisset)
      4 
----> 5 thisset.remove("Facebook")   # 不存在会发生错误
      6 

KeyError: 'Facebook'

移除指定的元素,元素不存在时不报错

此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:

s.discard( x )
thisset = set(("Google", "ali", "baidu"))
thisset.remove("ali")
print(thisset)

# 不存在会发生错误
thisset.discard("Facebook")   

执行结果:

{'Google', 'baidu'}

随机删除元素

随机删除集合中的一个元素

s.pop() 
thisset = set(("Google", "baidu", "ali", "Facebook"))
x = thisset.pop()
 
print(x)

执行结果:

Google

集合的常用方法

  • clear() :移除集合中的所有元素
  • copy():拷贝一个集合
  • len() : 求集合中元素个数
  • difference() :返回多个集合的差集
  • intersection():返回集合的交集
  • symmetric_difference():返回两个集合中不重复的元素集合。
  • union(): 返回两个集合的并集
posted @ 2019-03-03 14:26  youngliu91  阅读(89)  评论(0编辑  收藏  举报