集合转换成字符串
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)
Truea.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'])
转载于:https://blog.51cto.com/13496943/2129563