Python学习之路-----集合操作

集合

集合(set)是一个无序的不重复元素序列

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

创建一个空集合 和 空字典

empty_set = set()
empty_dict = {}
print(empty_set)
print(empty_dict)
print(type(empty_set))
print(type(empty_dict))

'''
set()
{}
<class 'set'>
<class 'dict'>
'''

集合的运算

a = set('abracadabra')
b = set('alacazam')
print(a)
print(b)
print(a - b)  #差集
print(a | b)  #并集
print(a & b)  #交集
print(a ^ b)  #两集合各自独有的==并-交

'''
{'r', 'd', 'b', 'c', 'a'}
{'a', 'l', 'z', 'c', 'm'}
{'d', 'r', 'b'}
{'r', 'l', 'd', 'm', 'b', 'c', 'z', 'a'}
{'c', 'a'}
{'m', 'z', 'r', 'b', 'l', 'd'}
'''

集合的基本操作

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

thisset = set(("Google", "Runoob", "Taobao"))
thisset.add("Facebook")
print(thisset)

'''
{'Taobao', 'Facebook', 'Google', 'Runoob'}
'''

s.update( x ) 将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。x 可以有多个,用逗号分开。

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Runoob'}
>>> thisset.update([1,4],[5,6])  
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}

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

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

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.remove("Taobao")
>>> print(thisset)
{'Google', 'Runoob'}
>>> thisset.remove("Facebook")   # 不存在会发生错误
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Facebook'

s.discard(x) 移除集合中的元素,且如果元素不存在,不会发生错误。

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook")  # 不存在不会发生错误
>>> print(thisset)
{'Taobao', 'Google', 'Runoob'}

s.pop() 随机删除集合中的一个元素,因为集合是无序的

thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
x = thisset.pop()
 
print(x)

'''
Runoob
'''

len(s) 计算集合s元素的个数

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> len(thisset)
3

s.clear() 清空一个集合

>>> thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
>>> thisset
{'Facebook', 'Taobao', 'Google', 'Runoob'}
>>> thisset.clear()
>>> thisset
set()

x in s 判断x是否在集合s中

>>> thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
>>> "Google" in thisset
True
>>> "hello" in thisset
False

intersetcion() 求交集(不改变原有集合)

difference() 求差集(不改变原有集合)

unoin() 求并集(不改变原有集合)

symmetric_difference() 对称差集

举**intersetcion()**例子:

>>> s = set("Hacker")
>>> print(s.intersection("Rank"))
{'a', 'k'}
>>> print s.intersection(['R', 'a', 'n', 'k'])
set(['a', 'k'])
>>> s & set("Rank")
set(['a', 'k'])

issubset() 是否为子集

>>> thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
>>> anotherset = set(("Google", "Runoob"))
>>> thisset.issubset(anotherset)
False
>>> anotherset.issubset(thisset)
True

猜你喜欢

转载自blog.csdn.net/qq_42642142/article/details/106114962