Python中的集合(set)与数学中集合的概念类似。集合是用于存储不重复的元素。它可以分为可变集合(set)和不可变集合(frozenset)两种类型,即集合可以为可变数据类型也可以为不可变数据类型。
集合的特性:
· 无序性 : 元素之间没有确定的顺序。
· 互异性 :集合中不会出现重复元素。
· 确定性 : 元素和集合之间只存在属于和不属于的关系。
变量名 = {元素1,元素2,... ,元素n}
se1 = {10, 20, 30, 40, 50}
注意:创建空集合需要使用set()创建,不能直接用{},否则创建的会是一个字典。
a = {}
print(type(a))
a = set()
print(type(a))
se2 = {10,20,40,10,20,10}
print(se2)
注意:我们可以利用集合可以去掉重复元素这一特性来判断一个序列中的每一个元素是否具有唯一这一特性,有便于我们对数据的整理。
li1 = [1, 1, 2, 4, 6, 2]
if len(set(li1)) == len(li1):
print("该列表中不存在重复元素")
else:
print("该列表中存在重复元素")
集合数据是无序的,因此我们并不能使用下标进行访问集合内的元素。
se2 = {10, 20, 40, 10, 20, 10}
print(se2[1])
· add() : 添加一个元素
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1)
由于集合元素唯一,因此添入10的时候其集合内的元素不会发生变化。
· update(): 添加多个元素,追加的数据是序列
s1 = {10, 20}
s1.update([100, 200])
s1.update('abc')
print(s1)
注意:如果我们追加的数据不是一个序列而是一个元素的话那么就会发生报错
s1 = {10, 20}
s1.update(100)
· remove():删除集合中的指定元素,若元素不存在则会发生报错。
s1 = {10, 20}
s1.remove(10)
print(s1)
删除一个不存在的情况:
s1 = {10, 20}
s1.remove(30)
print(s1)
· discard():删除集合中的指定数据,如果数据不存在也不会发生报错。
s1 = {10, 20}
s1.discard(10)
print(s1)
s1.discard(10)
print(s1)
· pop() 随机删除集合中的一个数据,并返回这个数据。
i = 1
s1 = {10, 20, 30, 40, 50}
while i <= len(s1):
print(s1)
del_num = s1.pop()
print(del_num)
表面上看去你会觉得它每次删除的数据都是它最前面的数据,但是由于集合具有无序性,因此我们可以说是随机删除集合中的一个数据。
in: 判断数据在集合中,存在返回True,不存在返回False。
not in : 判断数据不在集合中,不存在返回True,存在返回False
s1 = {10, 20, 30, 40, 50}
print(10 in s1)
print(10 not in s1)
print(100 in s1)
print(100 not in s1)
以上是我近期对集合数据类型学习的一个总结,如若出现错误,希望大家能够指出,我们一起交流学习!!!