python(集合)

集合

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

集合中只能存放不可变的类型数据

集合中没有下标索引(即无序)

集合中的元素都是唯一的,没有重复元素

集合是可变类型数据(有增删改查方法)

创建集合:

set1 = {11, 22, 33, 44,'python'}
print(set1)

set2 = set('python')               #建议使用下面的写法,这种写法会输出{'t', 'y', 'n', 'h', 'p', 'o'}
print(set2)

set3 = set((1,'pa','ss'))
print(set3)

 

 

 

 

添加一个元素

set1 = {11, 22, 33, 44,'python'}
set1.add(5)
print(set1)   #集合是无序的,所以输出结果也是无序的

 

 

用update()方法添加

 

set1 = {11, 22, 33, 44,'python'}
set1.update([1,2],'sa1',(5,6))           #不能是整数,填整数int会报错;可以是列表,元组,字典,字符串等
print(set1)

 

 

 

可以用update()方法合并集合

set1 = {11, 22, 33, 44,'python'}
set2 = {65,23}
set1.update(set2)
print(set1)

 

 

移除元素

set1 = {11, 22, 33, 44,'python'}
set1.remove(11)                        #删除指定元素,如果元素不存在会报错
print(set1)

set1.discard(22)                  #删除指定元素,元素不存在不会报错
print(set1)
set1.discard(342342)

x = set1.pop()                #随机删除一个元素
print(x)

 

set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除

 

集合计算

a = {11, 22, 33, 44,'python'}
b = {'a','c',11}
print(len(a))                    #集合a的元素数量
print(a-b)                      #存在集合a中但不在集合b中的元素
print(a|b)                     #并集,集合a,b中的所有元素(去重)
print(a&b)                    #交集,集合a,b中都有的元素
print(a^b)                    #不同时包含在a,b集合的元素

 

 

清空集合

a = {11, 22, 33, 44,'python'}
a.clear()
print(a)

 

 

判断元素是否在集合中

a = {11, 22, 33, 44,'python'}
print(11 in a)
print('ss' in a)

 

 

集合内置方法

方法描述
add() 为集合添加元素
clear() 移除集合中的所有元素
copy() 拷贝一个集合
difference() 返回多个集合的差集
difference_update() 移除集合中的元素,该元素在指定的集合也存在。
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 返回集合的交集。
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset() 判断指定集合是否为该方法参数集合的子集。
issuperset() 判断该方法的参数集合是否为指定集合的子集
pop() 随机移除元素
remove() 移除指定元素
symmetric_difference() 返回两个集合中不重复的元素集合。
symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union() 返回两个集合的并集
update() 给集合添加元素

 

补充

s.update( "字符串" ) 与 s.update( {"字符串"} ) 含义不同:

s.update( {"字符串"} ) 将字符串添加到集合中,有重复的会忽略

s.update( "字符串" ) 将字符串拆分单个字符后,然后再一个个添加到集合中,有重复的会忽略

a = {11, 22, 33, 44,'python'}
a.update('for')
print(a)
a.update({'for'})
print(a)

 

posted @ 2021-11-11 16:58  测试小哄  阅读(219)  评论(0)    收藏  举报