Python数据类型--set(集合)
在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。
和其他容器类型一样,集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员。
但是因为集合本身是无序的,不能为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值。
对可变集合(set),能添加和删除元素,对不可变集合(frozenset)则不能这样做。注意:可变集合(set)不是可哈希的,因此既不能用做字典的键也不能做其他集合中的元素。
不可变集合(frozenset)则正好相反,即它们有哈希值,能被用做字典的键或是作为集合中的一个成员。
创建集合set、集合set添加、集合删除、交集、并集、差集的操作都是非常实用的方法。
创建集合类型和给集合赋值
集合与列表( [ ] )和字典( { } ) 不同,没有特别的语法格式。列表和字典分别用他们自己的工厂方法 list() 和 dict() 创建,这也是集合被创建的唯一方法:用集合的工厂方法set()和frozenset()。
a = set('python')
print(a)
#{'n', 'o', 'h', 'y', 't', 'p'}
t = frozenset('hello python')
print(t)
#frozenset({'l', 'e', 'n', ' ', 'o', 'h', 'y', 't', 'p'})
print(len(a), len(t))
#6 9
print(a == t)
#False
访问集合中的值
遍历查看集合成员或检查某项元素是否是一个集合中的成员。
t = frozenset('hellopython')
print(t)
#frozenset({'l', 'o', 'h', 'e', 'n', 'y', 't', 'p'})
print('h' in t)
#True
for i in t:
print(i)
#l
#o
#h
#e
#n
#y
#t
#p
更新集合
用各种集合内建的方法和操作符添加和删除集合的成员。只有可变集合能被修改,试图修改不可变集合会引发异常。
a = set('python')
print(a)
#{'n', 'o', 'h', 'y', 't', 'p'}
a.add('z') #添加元素z
print(a)
#{'h', 'z', 'y', 'n', 'o', 'p', 't'}
a.update('pypi') #添加元素 p y p i 如果有就不添加
print(a)
#{'h', 'z', 'y', 'n', 'o', 'p', 'i', 't'}
a.remove('z') #移除元素z
print(a)
#{'h', 'y', 'n', 'o', 'p', 'i', 't'}
a -= set('pypi') #移除元素 p y p i
print(a)
#{'h', 'n', 'o', 't'}
删除集合中的成员和集合
删除集合成员remove()内建方法。删除集合本身,可以像删除任何Python对象一样,令集合超出它的作用范围或调用del将它们直接清除出当前的名字空间。如果它的引用计数为零,也会被标记以便被垃圾回收。如del s。
del a
美景欣赏


相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型