Python集合及运算
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...}或者set(value)
集合的写法:
set1={1,2,3}
set2=set([1,2,3])
set3=set((1,2,3))
set4=set({1:2})
print(type(set1),type(set2),type(set3),type(set4))
print(set1,set2,set3,set4)
<class 'set'> <class 'set'> <class 'set'> <class 'set'>
{1, 2, 3} {1, 2, 3} {1, 2, 3} {1}
集合的运算:
1、列表去重,变成集合即可去重
list1=[1,2,2,'python','java','java']
list2=set(list1)
print(list2,type(list2))
{1, 2, 'python', 'java'} <class 'set'>
2、集合的交集
list1=[1,2,2,'python','java','java']
list1=set(list1)
list2=[3,2,2,'python','java','c']
list2=set(list2)
print(list1.intersection(list2))或print(list1&list2)
{2, 'python', 'java'}
3、集合的并集(list1和list2合到一起再去重)
list1=[1,2,2,'python','java','java']
list1=set(list1)
list2=[3,2,2,'python','java','c']
list2=set(list2)
print(list1.union(list2))或print(list1|list2)
{1, 2, 3, 'c', 'java', 'python'}
4、集合的差集(list1有list2没有的)
list1=[1,2,2,'python','java','java']
list1=set(list1)
list2=[3,2,2,'python','java','c']
list2=set(list2)
print(list1.difference(list2))或print(list1-list2)
{1}
5、集合的对称差集(list1有list2没的,list2有的list1没有的,去掉list1和list2重复的)
list1=[1,2,2,'python','java','java']
list1=set(list1)
list2=[3,2,2,'python','java','c']
list2=set(list2)
print(list1.symmetric_difference(list2))或print(list1^list2)
{1, 3, 'c'}
6、集合的子集(list1是list2子集?)
list1=[1,2,2,'python','java','java']
list1=set(list1)
list2=[3,2,2,'python','java','c']
list2=set(list2)
print(list1.issubset(list2))
False
7、集合添加1项元素
list1=[1,2,2,'python','java','java']
list1=set(list1)
list1.add(555)
print(list1)
{1, 2, 555, 'java', 'python'}
8、集合添加多项元素
list1=[1,2,2,'python','java','java']
list1=set(list1)
list1.update([555,666,777])
print(list1)
{'java', 1, 2, 777, 555, 666, 'python'}
9、删除集合元素
list1=[1,2,2,'python','java','java']
list1=set(list1)
list1.remove(2)
print(list1)
{1, 'python', 'java'}
10、判断元素是否在集合
list1=[1,2,2,'python','java','java']
list1=set(list1)
print(1 in list1)
True
11、随机删集合1个元素并返回这个元素
list1=[1,2,2,'python','java','java']
list1=set(list1)
print(list1.pop())
1
评论