Python 3 集合基础和概念!
Python 3中,集合是无序的,所以不能进行切片和索引操作。
创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的;frozenset()方法创建的集合是不可改变的。
代码可以看出来,看上去创建的集合是一个列表,实际上我们用type()就可以看出,创建的是一个set对象,不懂的话可以大致理解为列表。
>>> a = set(‘hello‘)
>>> a
{‘l‘, ‘h‘, ‘o‘, ‘e‘}
set()还支持add方法和update方法,两个对比一下,区别还是很明显的,add方法是把参数整个加入到集合中,update方法是把参数拆分然后加入到集合中:
>>> a = set(‘hello‘)
>>> a.add(‘,world‘)
>>> a
{‘l‘, ‘h‘, ‘,world‘, ‘o‘, ‘e‘}
>>> a = set(‘hello‘)
>>> a.update(‘world‘)
>>> a
{‘r‘, ‘w‘, ‘d‘, ‘l‘, ‘h‘, ‘o‘, ‘e‘}
remove方法,删除指定的字符串:
>>> a = set(‘hello‘)
>>> a.remove(‘l‘)
>>> a
{ ‘h‘, ‘o‘, ‘e‘}
数学中常用的交集、并集、差集对集合来说也是适用的:
交集,返回的是变量a和变量b的共有部分:
>>> a = set(‘abcdef‘)
>>> b = set(‘bcdefh‘)
>>> a & b
{‘f‘, ‘d‘, ‘b‘, ‘c‘, ‘e‘}
并集,返回的是变量a和变量b去掉共有部分之后的剩余部分(因为a和b的值大部分是重复的,所以删除就是那部分重复的):
>>> a = set(‘abcdef‘)
>>> b = set(‘bcdefh‘)
>>> a | b
{‘a‘, ‘f‘, ‘d‘, ‘b‘, ‘h‘, ‘c‘, ‘e‘}
差集,返回的是a变量中有但是b变量中没有的部分:
>>> a = set(‘abcdef‘)
>>> b = set(‘bcdefh‘)
>>> a - b
{‘a‘}
set的去重功能,在c列表中,1和2是有重复的,所以我们把列表转化为集合之后,就会自动删除重复的部分(想转换回列表的话,直接list(set(c))就行了):
>>> c = [1,2,3,4,1,2]
>>> set(c)
{1, 2, 3, 4}