首页 > Python3教程 > Python3变量及数据类型

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

美景欣赏

美景欣赏

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。