Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作(虽然set可以用列表代替)
小例子
1.如果我要在许多列表中找出相同的项,那么用集合是最好不过的了,用集合只用一行就可以解决
2.去重
用法
注意set因为没有位置的概念所以list方法切片什么的都没有用,需要的时候再转化为list
内建函数创建set
基本操作
t.remove('H') # 删除一项
len(s) # set 的长度
x in s # 测试 x 是否是 s 的成员
x not in s # 测试 x 是否不是 s 的成员
s.issubset(t) s <= t # 测试是否 s 中的每一个元素都在 t 中
s.issuperset(t) s >= t # 测试是否 t 中的每一个元素都在 s 中
s.union(t) s | t # 返回一个新的 set 包含 s 和 t 中的每一个元素
s.intersection(t) s & t # 返回一个新的 set 包含 s 和 t 中的公共元素
s.difference(t) s - t # 返回一个新的 set 包含 s 中有但是 t 中没有的元素
s.symmetric_difference(t) s ^ t # 返回一个新的 set 包含 s 和 t 中不重复的元素
s.copy() # 返回 set “s”的一个浅复制
# 收件人去重,并保持原来的收件人顺序
mailto = ['cc', 'bbbb', 'afa', 'sss', 'bbbb', 'cc', 'shafa']
addr_to = list(set(mailto))
addr_to.sort(key = mailto.index)