5. 基本数据结构-集合
一、集合定义
集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
二、集合操作
1. 创建空集合
1. set_test = {1,2,3,4,5}
2. set()
2. 集合操作
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)
>>>{'orange', 'banana', 'pear', 'apple'}
a = set('abracadabra')
print(a)
>>>{'b', 'a', 'd', 'r', 'c'}
b = set('alacazam')
>>>{'m', 'z', 'a', 'l', 'c'}
1. 集合a中包含而集合b中不包含的元素
a-b
>>>{'r', 'd', 'b'}
2. 集合a或b中包含的所有元素
a | b
>>>{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
3. 集合a和b中都包含了的元素
a & b
>>>{'a', 'c'}
4. 不同时包含于a和b的元素
a ^ b
>>>{'r', 'd', 'b', 'm', 'z', 'l'}
1. difference() - 差集
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
z = x.difference(y)
>>>{'cherry', 'banana'}
2. intersection() - 交集
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"}
z = x.intersection(y)
>>>{'apple'}
x = {"a", "b", "c"}
y = {"c", "d", "e"}
z = {"f", "g", "c"}
result = x.intersection(y, z)
>>>{"c"}
3. union() - 并集
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"}
z = x.union(y)
>>>{'cherry', 'runoob', 'google', 'banana', 'apple'}
1. 添加元素 add/update
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Runoob'}
>>>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'}
2. 移除元素
>>>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'
>>>thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
>>> thisset.pop()
'Facebook'