the day of python learning(集合)


'''

一.集合

集合是无序的,不重复的可变数据类型,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。集合的重要两点:

  去重,把一个列表变成集合,就自动去重了。

  关系测试,测试两组数据之前的交集、 差集 、并集 等关系。


集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。
{}
'''
#creat one set
set1 = {1,2,3}#set()将数据类型转换为集合
#{1,2,3}为一个集合,且里面的数据为int,不可变
#print(set)#{1, 2, 3} <class 'set'>
#set2 = {1,2,3,[2,3],{'name':'renxin'}}
#报错,存在字典与列表等可变数据类型
#print(set2)

#集合的增加
#add
# set1.add('女神')
# print(set1)
#update,迭代着添加
# set1.update('女神')
# print(set1)

#集合的删除
#set1.pop()#随机删除
# print(set1.pop())#有返回值
# print(set1)

#set1.remove(1)#按照元素进行删除
#print(set1)

# set1.clear()
# print(set1) #返回为set()

# del set1
# print(set1)#返回为报错,因为集合set已经不存在了

#集合的查找
# for i in set1:
#     print(i)


set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
#交集(&或者intersection)
# set3 = set1& set2
# print(set3)  #返回集合的交集{4,5}
#print(set1.intersection(set2))  #{4,5}#intersection返回的是函数

#并集。(| 或者union)
print(set1 | set2) #{1,2,3,4,5,6,7}
print(set2.union(set1))
#差集(-或者difference)
print(set1 - set2)
print(set1.difference(set2))#{1,2,3}

#反交集(^或者symmetic_difference)
print(set1^set2)  #返回集合的{1,2,3,6,7,8}
print(set1.symmetric_difference(set2))

#子集与超集
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1 < set2)
print(set1.issubset(set2))#这两个相同,都是说明set1是set2子集

print(set2>set1)
print(set2.issuperset(set1))#这两个相同,都是说明set2是set1超集

#frozenset不可变集合,让集合变成不可变类型
s = frozenset('barry')
print(s,type(s))       #frozenset({'r', 'y', 'a', 'b'}) <class 'frozenset'>
#集合无序的

 

posted @ 2018-08-16 15:51  浅笨小孩  阅读(112)  评论(0编辑  收藏  举报