python笔记:集合



#集合
#集合的创建,只有一种创建方式
s = set('barry wen')
print(s) #集合最大的一个特点就是如果元素中有重复的,最终只会存在一个
#用字符串创建的集合,最终存在于其中的是单个的字符

s1 = set(['test1', 'test2', 'test3', 'test1'])
print(s1) #用列表的方式来创建集合,最终会清除掉列表中重复的项
#但是其结果不是一个列表的格式了,可以通过格式转换为列表
print(list(s1))

#创建集合的前提,元素必须是可哈希的, 也就是不可变的,否则就会报错
# s2 = ['test1', [1, 2], 3]
# s3 = set(s2) //unhashable type: 'list'

#从上面的结果可以看出来集合是无序的,不重复的
#set是可变集合

#集合是无序的,所以不能通过索引或者切片的方式去查找
#只能够通过in 或者 not in 判断元素是否在集合中

print(s)
print('b' in s)

s2 = set(['wenwen', 1, 2])
print(s2)
print('wenwen' not in s2)
print('wen' in s2)


#用set这个方式创建的集合是可变的
#用add方法给集合添加一个元素
s2.add('test1')
print(s2)

#用update方法更新集合,给集合添加元素,将元素作为一个序列添加进入集合,同样是无重复的
s2.update('test')
print(s2)

s2.update([12, 'eee'])
print(s2) #同样的是将元素作为序列添加进入集合


#用remove删除一个元素
s.remove('a')
print(s)

#用pop来删除一个元素
s.pop() #随机删除一个
print(s)

#用clear来清空集合
s.clear()
print(s)

#用del删除
del(s)


a = set([1, 2, 3, 4, 5])
b = set([4, 5, 6, 7, 8])
#子集和超集
print(set('test') < set('test1'))

#父集(超集)
print(a.issuperset(b))

#子集
print(a.issubset(b))

#并集
print(set('testing') | set('test1'))
print(a.union(b))

#交集
print(set('testing') & set('test1'))
print(a.intersection(b))

#差集
print(a - b)
print(a.difference(b)) #in a but not in b

print(b - a)
print(b.difference(a)) #in b but not in a

print(a.symmetric_difference(b)) #反向交集, 对称差集
print(a ^ b) #

#运行结果
{'b', 'y', 'w', ' ', 'r', 'a', 'n', 'e'}
{'test3', 'test2', 'test1'}
['test3', 'test2', 'test1']
{'b', 'y', 'w', ' ', 'r', 'a', 'n', 'e'}
True
{1, 2, 'wenwen'}
False
False
{1, 2, 'wenwen', 'test1'}
{1, 2, 'wenwen', 't', 's', 'test1', 'e'}
{1, 2, 'wenwen', 12, 't', 's', 'eee', 'test1', 'e'}
{'b', 'y', 'w', ' ', 'r', 'n', 'e'}
{'y', 'w', ' ', 'r', 'n', 'e'}
set()
True
False
False
{'s', 'n', '1', 'g', 't', 'i', 'e'}
{1, 2, 3, 4, 5, 6, 7, 8}
{'s', 't', 'e'}
{4, 5}
{1, 2, 3}
{1, 2, 3}
{8, 6, 7}
{8, 6, 7}
{1, 2, 3, 6, 7, 8}
{1, 2, 3, 6, 7, 8}

猜你喜欢

转载自www.cnblogs.com/BarryWen/p/9193039.html
今日推荐