集合:是一个不重复的元素序列
1、定义:使用花括号或者使用函数Set
a={'gang','man','28'};
b=set(('Google', 'Runoob', 'Taobao'));
2、集合之间的运算
a={'gang','man','28','Google'};
b=set(('Google', 'Runoob', 'Taobao'));
# 这里所说的交集,并集是数学概念
print(a|b); #取集合并集
print(a&b); #取集合交集
print(a-b); #集合a减去集合a,b的交集
print(a^b); #a,b的并集减去a,b的交集
执行结果是:
{'Taobao', 'man', '28', 'gang', 'Runoob', 'Google'}
{'Google'}
{'man', '28', 'gang'}
{'man', 'Runoob', 'Taobao', '28', 'gang'}
3、集合自身运算
3.1 增加元素 add()
a={'gang','man','28','Google'};
b=set(('Google', 'Runoob', 'Taobao'));
a.add('taobao');
print(a);
执行结果是:{'Google', 'gang', '28', 'man', 'taobao'}
3.2 update() 集合更新,批量增加集合元素
a={'gang','man'};
a.update({'taobcu','nihao'});
print(a);
执行结果是: {'taobcu', 'nihao', 'man', 'gang'}
3.3 remove() 删除集合元素,如果待删除的元素不存在,将会抛出异常
a={'gang','man'};
a.update({'taobcu','nihao'});
a.remove('nihao');
print(a);
执行结果是: {'man', 'gang', 'taobcu'}
3.4 discard() 删除集合元素,与remove区别在与,当待删除的元素不存在,
discard不会抛出异常
3.5 pop() 删除集合元素,删除第一个元素
a={'gang','man','taobcu','nihao'};
print(a);
a.pop();
print(a);
执行结果是:
{'man', 'taobcu', 'gang', 'nihao'}
{'taobcu', 'gang', 'nihao'}
4、集合方法
4.1 返回集合长度 len()
a={'gang','man','taobcu','nihao'};
print(len(a));
执行结果是: 4
4.2 clear() 清空集合所有元素
a={'gang','man','taobcu','nihao'};
a.clear();
print(a);
执行结果是: set()
4.3 in 判断元素是否在集合内,in 不是方法
a={'gang','man','taobcu','nihao'};
if 'gang' in a:
print('true')
else:
print('false');
执行结果是: true
4.4 Copy() 复制集合
a={'gang','man','taobcu','nihao'};
b=a.copy();
print(b);
执行结果是: {'gang', 'man', 'nihao', 'taobcu'}
4.5 difference() 和difference_update()
假如有集合a和b,那么a. difference(b)表示集合a-a交b,返回结果是集合;
a. difference_update(b)表示集合a-a交b,返回结果是none,但是它改变了集合a
a={'gang','man','taobcu','nihao'};
b={'gang','czg'};
c=a.difference(b);
print(c);
a.difference_update(b);
print(a)
执行结果是: {'man', 'taobcu', 'nihao'}
{'nihao', 'man', 'taobcu'}
4.6 intersection() 返回集合的交集; intersection_update() 也是返回None,它会更新集合a
a={'gang','man','taobcu','nihao'};
b={'gang','czg'};
c=a.intersection(b); --参数可以有多个集合
print(c);
a. intersection_update(b);
print(a);
执行结果是: {'gang'} {'gang'}
4.7 isdisjoint() 判断2个集合是否有交集,有则返回true,否则返回false
a={'gang','man','taobcu','nihao'};
b={'gang','czg'};
if a.isdisjoint(b):
print('true')
else:
print('false');
执行结果是: true
4.8 判断子集 a.issubset(b) 判断a是否是b的子集
a={'gang'};
b={'gang','czg'};
if a.issubset(b):
print('true')
else:
print('false');
执行结果是: true 4.9 判断超集 a.issuperset(b) 判断a是否是b的超级/父集
a={'gang'}; b={'gang','czg'}; if a.issuperset(b): print('true') else: print('false');
执行结果是:false
4.10 union() 返回2个集合的并集
a={'gang','test'};
b={'gang','czg'};
c=a.union(b);
print(c);
执行结果是: {'gang', 'czg', 'test'}
4.11 symmetric_difference()和symmetric_difference_update
a.symmetric_difference(b) 表示a并b减a和b的交集,并且返回该集合
a.symmetric_difference_update(b) 表示a=a并b减a和b的交集,它的返回值是none,但是它改变了a
a={'gang','test'};
b={'gang','czg'};
c=a.symmetric_difference(b);
print(a);
c=a.symmetric_difference_update(b);
print(c);
print(a);
执行结果是:
{'test', 'gang'}
None
{'test', 'czg'}