Set(集合)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
paname = {value1,value2,…}
或者
set(value)
实例:
stu={'Tom','Jim',"Marry",'Tom','Jack','Rose'}
print(stu)# 输出集合,重复的元素被自动去掉
if 'Rose' in stu:
print('Rose 在集合中')
else:
print('Rose 不在集合中')
输出结果:
{'Jack', 'Marry', 'Jim', 'Tom', 'Rose'}
Rose 在集合中
集合的基本操作
1、添加元素
将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。语法格式如下:
s.add(x)
实例:
thisset = set(("Google", "Runoob", "Taobao"))
print("原集合",thisset)
thisset.add("Facebook")
print("添加之后的新集合",thisset)
输出结果:
原集合 {'Runoob', 'Taobao', 'Google'}
添加之后的新集合 {'Runoob', 'Taobao', 'Facebook', 'Google'}
还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:
s.update( x )
实例:
thisset = set(("Google", "Runoob", "Taobao"))
print("原集合",thisset)
thisset.update({1,3})
print("添加{1,3}之后的新集合",thisset)
thisset.update([1,4],[5,6])
print("添加[1,4],[5,6]之后的新集合",thisset)
输出结果:
原集合 {'Taobao', 'Google', 'Runoob'}
添加{1,3}之后的新集合 {1, 3, 'Taobao', 'Google', 'Runoob'}
添加[1,4],[5,6]之后的新集合 {1, 3, 4, 5, 6, 'Taobao', 'Google', 'Runoob'}
2.移除元素
将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。语法格式如下:
s.remove( x )
实例:
thisset = set(("Google", "Runoob", "Taobao"))
thisset.remove("Taobao") # 删除存在的元素
print("删除Taobao之后的元组",thisset)
thisset.remove("Facebook") # 删除不存在的元素
print("删除Facebook之后的元组",thisset)
输出结果:
删除Taobao之后的元组 {'Google', 'Runoob'}
Traceback (most recent call last):
File "F:\知识\Python程序\hello.py", line 4, in <module>
thisset.remove("Facebook") # 删除不存在的元素
KeyError: 'Facebook'
此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:
s.discard( x )
实例:
thisset = set(("Google", "Runoob", "Taobao"))
thisset.discard("Facebook") # 删除不存在的元素
print("删除Facebook之后的元组",thisset)
输出结果:
删除Facebook之后的元组 {'Google', 'Taobao', 'Runoob'}
随机删除集合中的一个元素,语法格式如下:
s.pop()
实例:
thisset = set(("Google", "Runoob", "Taobao"))
print("随机删除的元素为: ",thisset.pop())
输出结果:
随机删除的元素为: Google
多次执行测试结果都不一样。
3、计算集合元素个数
语法格式如下:
len(s)
实例:
thisset = set(("Google", "Runoob", "Taobao"))
print(len(thisset))
输出结果:
3
** 4、清空集合**
语法格式如下:
s.clear()
实例:
thisset = set(("Google", "Runoob", "Taobao"))
thisset.clear()
print(thisset)
输出结果:
set()
5.集合运算
实例:
a=set("abracadabra")
b={'a','l','a','c','a','z','a','m'}
print(a)
print(a-b) # a和b的差集
print(a|b) # a和b的并集
print(a&b) # a和b的交集
print(a^b) # a和b中不同时存在的元素
输出结果:
{'a', 'c', 'd', 'r', 'b'}
{'r', 'd', 'b'}
{'a', 'l', 'c', 'd', 'r', 'm', 'z', 'b'}
{'c', 'a'}
{'l', 'm', 'r', 'b', 'z', 'd'}*斜体样式*
集合内置方法完整列表
- add() 为集合添加元素
- clear() 移除集合中的所有元素
- copy() 拷贝一个集合
- difference() 返回多个集合的差集
- difference_update() 移除集合中的元素,该元素在指定的集合也存在。
- discard() 删除集合中指定的元素
- intersection() 返回集合的交集
- intersection_update() 删除集合中的元素,该元素在指定的集合中不存在。
- isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
- issubset() 判断指定集合是否为该方法参数集合的子集。
- issuperset() 判断该方法的参数集合是否为指定集合的子集
- pop() 随机移除元素
- remove() 移除指定元素
- symmetric_difference() 返回两个集合中不重复的元素集合。
- symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
- union() 返回两个集合的并集
- update() 给集合添加元素