六,集合

集合的基本语法
集合是一种可变的数据类型,其中的元素必须是不可变的数据类型,无序,切不重复。
可以用于去重功能
例如:
set1 = {1,2,3}
set()可以把列表,元组等类型转换为集合

集合的内置方法:

增加集合的元素:
set1.add(想要增加的内容) #增加一个元素到集合中去。
set1.update(添加其他的序列数据) #类似于列表中的extend,可以把其他的序列增加到集合中!
删除元素:
set1.pop() #随机删除集合中的某一个元素。并且将返回被删除的元素。
set1.remove(想要删除的元素) #可以按照元素去删除。
set1.discard() #按照value删除一个元素,如果个值不存在不会报错。返回None
set1.clear() #清空列表中的所有元素,返回一个空的集合!
del set1() #直接删除整个集合!
因为是不可变数据类型,所以没有“改”操作
查询:
只能在for i in set:语句中进行查询
特殊功能,查询两个集合的交集:
例如:
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2) #{4,5}
print(set1.inersection(set2)) #{4,5}
并集:
print(set1 | set2) #{1,2,3,4,5,6,7,8}
print(set2.union(set1)) #{1,2,3,4,5,6,7,8}
反交集:
print(set1 ^ set2) #{1,2,3,6,7,8}
print(set1.symmetic_difference(set2))
差集:set1中独有的元素就是set1 - set2的差集:
print(set1 - set2) #{1,2,3}
print(set1.difference(set2))
子集和超集:
set1 = {1,2,3}
set2 = {1,2,3,4,5}
print(set1<set2)
print(set1.issunbset())
#True
print(set2>set1)
print(set2.issuperset())
#True
返回的是布尔值
set.isdisjoint()
返回是否是完全没有交集

怎么将列表等其他的数据类型转换为集合类型?
list1 = [1,2,3,4,1,2,3,4]
set1 = set(list1)
list1 = list(set1)
达到了一种通过转换为集合的方式,去重的效果。

将集合转换为一种不可变的数据类型:
s = frozenset('barry')
print(s,type(s))
可以迭代,但是不能增加或删除其中的元素。


posted on 2019-01-13 21:32  王汉尧  阅读(135)  评论(0编辑  收藏  举报