集合转换成字符串

set1 = {"1","2","3","4","5"} "".join(set1) '13254' 注意:转换后字符串是无序的

集合转换成元组

set1 set(['1', '3', '2', '5', '4'])

t = tuple(set1) t ('1', '3', '2', '5', '4')

集合转列表

l = list(set1) l ['1', '3', '2', '5', '4']

set.clear()清空集合

set1.clear() set1 set([])

set.copy()复制集合

set1 = {"1","2","3","4","5"} set2 = set1.copy() set2 set(['1', '3', '2', '5', '4'])

len(set)求集合长度

len(set1) 5

交集 利用 & 符号

a ={1,2,3,4} b = {3,4,5,6} a&b set([3, 4])

set1.intersection(set2)

a.intersection(b) set([3, 4])

set1.intersection_update(set2) 交集更新操作 返回两个集合的交集,set1中其他元素被删除

a.intersection_update(b) a set([3, 4])

并集 利用 |符号

a|b set([1, 2, 3, 4, 5, 6])

set1.union(set2)

a.union(b) set([1, 2, 3, 4, 5, 6])

set1.update(set2) 并集更新操作,set2中的元素被添加到set1

a.update(b) a set([1, 2, 3, 4, 5, 6])

差集 利用 - 减号

a-b set([1, 2])

b - a set([5, 6])

set1.difference(set2)

a.difference(b) set([1, 2])

Set1.difference_update(set2) 差集更新操作,返回set1和set2的差集,set1中的其他不在set2中的元素被删除

a ={1,2,3,4} b = {3,4,5,6} a.difference_update(b) a set([1, 2])

b set([3, 4, 5, 6]) set1.symmetric_difference(set2)对称差集 两个集合中所有不属于两个集合交集的元素 对称差集:集合A与集合B的对称差集定义为集合A与集合B中所有不属于A∩B的元素的集合,记为A△B,也就是说A△B={x|x∈A∪B,x∉A∩B},即A△B=(A∪B)—(A∩B).也就是A△B=(A—B)∪(B—A)

a set(['a', '1', 'c', 'b'])

b set(['y', 'x', '1', 'z'])

a.symmetric_difference(b) set(['a', 'c', 'b', 'y', 'x', 'z'])

set1.symmtric_difference_update(set2)对称差集更新操作 Set1返回两个集合的对称差集

a set(['a', '1', 'c', 'b'])

b set(['y', 'x', '1', 'z'])

a.symmetric_difference_update(b) a set(['a', 'c', 'b', 'y', 'x', 'z'])

小练习: 一个文件由英文单词组成,找出文件中只出现一次的单词 #coding = utf-8 import string only_one_list = [] with open("e:\python\word.txt","r") as file_obj: content = file_obj.read() for c in content: if c in string.punctuation: content.replace(c," ") for word in set(content.split()): only_one_list.append(word)

print only_one_list

判断集合的关系 利用 > 、>=、 、< <= 集合可以使用大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=)来判断某个集合是否完全包含于另一个集合,也可以使用子父集判断函数。

a = {1,2,3,4,5,6,7} b = {1,2,3,4} a > b True

a < b False

a >= b True

b < a True

set1.issuperset(set2) 判断set1是否是set2的超集

a set([1, 2, 3, 4, 5, 6, 7])

b set([1, 2, 3, 4])

a.issuperset(b) False

b.issuperset(a) True

a.issubset(b) True set1.issubset(set2) 判断set1是否是set2的子集

set1.isdisjoint(set2)是否不存在交集 判断两个集合是否不存在交集,如果两个集合没有交集,返回True,如果有交集返回False

a set(['y', 'x', 'z'])

b set(['a', 'c', 'b'])

a.isdisjoint(b) True

c = {1,2} d = {1,4,5} c.isdisjoint(d) False

集合推导式

基本集合推倒式

a set([1, 2, 3, 4, 5, 6, 7])

{i*2 for i in a} set([2, 4, 6, 8, 10, 12, 14])

带if条件的集合推导式

{i**2 for i in a if i%2 == 0} set([16, 36, 4])

多层循环集合推导式

a set(['y', 'x', 'z'])

b set(['a', 'c', 'b'])

{x+y for x in a for y in b } set(['xa', 'ya', 'xc', 'yc', 'yb', 'za', 'zb', 'zc', 'xb'])