集合的概述
Python语言中的集合类型与数学中的集合概念一致,即包括0个或多个数据项的无序组合。集合是无序组合,用大括号({})表示,它没有索引和位置的概念,集合中的元素可以动态增加或删除。
集合中的元素不可重复,元素类型只能是不可变数据类型,例如整数、浮点数、字符串、元组等,相比较而言,列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现
s = {1, 2, 3, 4, 5}
print(s, type(s))
# set()可以将序列和字典转换成为集合
s = set([1,2,3,4,5]) #列表转集合
print(s,type(s))
s = set('Python')
print(s,type(s)) #集合中储存的数据是无序的
s = {1,2,3,4,4,5,6,7} #集合中不能出现重复的元素
print(s)
s = set({'name':'XXX0','age':18}) #返回结果只返回key值
print(s,type(s))
运行结果如下:
{1, 2, 3, 4, 5} <class 'set'>
{1, 2, 3, 4, 5} <class 'set'>
{'n', 'o', 'y', 'P', 't', 'h'} <class 'set'>
{1, 2, 3, 4, 5, 6, 7}
{'name', 'age'} <class 'set'>
集合的使用
in 、 not in 用来检测当前元素
s ={1,2,3,4,5,'python'}
result = 'python' in s #判断元素是否在当前的集合中,在返回True,否则,返回False
response = 5 not in s
print(response)
print(result)
print(s)
运行结果:
False
True
{1, 2, 3, 4, 5, 'python'}
集合方法:
# 集合方法
#len()方法,用来检测集合的长度
s={1,2,3,'python'}
len(s)
print(len(s))
print(s)
#update() 将一个集合的元素添加到当前集合中来
s ={1,2,3}
s2 ={4,5,6}
s.update(s2)
print(s)
#pop() #在集合中pop是随机删除一个元素并带有返回值
s ={'python','java','c'}
result = s.pop()
print(result)
print(s)
#remove() 删除集合中的指定元素
s = {'python','java','c'}
result =s.remove('java')
print(result,type(result))
print(s)
#clear() 清空集合
s = {'python','java','c'}
s.clear()
print(s)
运行结果:
4
{1, 2, 3, 'python'}
{1, 2, 3, 4, 5, 6}
python
{'java', 'c'}
None <class 'NoneType'>
{'python', 'c'}
set()
集合运算:
# 集合的运算
s = {1, 2, 3, 4, 5, 6}
s2 = {3, 4, 5, 6, 7, 8}
result = s ^ s2 #亦或集,指的是s和s2中b不相交的元素
print(result)
result = s | s2 #并集运算,指的是s和s2中所有的元素
print(result)
result = s & s2 #交集运算,指的是s和s2中共同的元素
print(result)
result = s - s2 #差集运算 ,注意:指的是s与s2中不相同的元素但不包括s2中的元素
print(result)
运行结果:
{1, 2, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8}
{3, 4, 5, 6}
{1, 2}
集合的 <= >= < >
s = {1, 2, 3,}
s1 = {1, 2, 3, 4}
result = s <= s1 #检测一个集合是否是一个集合的子集 s集合是s1集合的子集,相反s1是s的超集
print(result)
result = s<s1 #检测一个集合是否是另一个集合的真子集
print(result)
运行结果:
True
True