Day14 - 3 集合

集合(set)是一个无序,不重的数据组合,它主要有以下两个作用:

1.去重

2.关系测试

a = [1,1,2,'asd']
b=set(a)
print(b)

结果:{1, 2, 'asd'}

集合对象是一组可哈希的值,也就是元素不可变,列表就不能作为其中的元素

a = [[1,1],2,'asd']
b=set(a)
print(b)

结果:unhashable type: 'list'

集合本身也有两种分类:可变集合(set)  不可变集合(frozenset)(类似于元组)

forzenset可作为字典的键

a=[1,1,2]
b=frozenset(a)
c = {b:'z'}
print(c[b])
 
 


1.创建集合:用关键字set()

a=set('asdfg')
print(a)
结果:{'f', 'd', 's', 'g', 'a'}

2.访问集合:因为集合是无序的,所以没法切片,或者用下标访问集合,只能通过for循环遍历集合,但是可以用

in和not in判断某个元素在不在集合里面

3.更新集合:

s.add()   一次只能添加一个元素,如果是字符串,会把它当成整体加入

s.updata()  一次只能添加一个元素,如果是字符串,会分成字符来看

s.remove() 一次删除一个指定元素

del 删除整个集合

4.集合类型操作符:(同数学中的集合)

(1)in 和 not in

(2)集合等价==和不等价!=

(3)子集和超集

(4)交并补差

集合的并集:

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

集合的交集:

a = set([1,1,2,3,4])
b = set([4,5,6])
c = a&b
print(c)
print(a.intersection(b))

差集:

a = set([1,1,2,3,4])
b = set([4,5,6])
c = a-b
print(c)
print(a.difference(b))

对称差集:

a = set([1,1,2,3,4])
b = set([4,5,6])
c = a^b
print(c)
print(a.symmetric_difference(b))

快速去重,可以先变集合,再变回列表



猜你喜欢

转载自blog.csdn.net/qq_36428237/article/details/80318011