我是靠谱客的博主 典雅银耳汤,最近开发中收集的这篇文章主要介绍Python --基础数据类型(set集合的增删改查及其他相关操作),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

set集合

  • set集合是Python的一个基础数据类型,一般很少用到,set中的元素是不可重复而无序的,里面的元素必须是可hash的(int,str,tuple,bool),set也是用{}括起来的,我们可以这样记,set是dict类型的数据,但是不保存value,只保存key。
  • 注意:set集合中的元素必须是可hash的,但是set本身又是不可hash的,set是可变的。
  • set中的元素是不可重复而无序的,使用这个特性,我们使用set 去重
s = {'A', 'B', 'A', 'B'}
print(s) #结果:{'B', 'A'}

lst = ['A','B','A','B']
lst = list(set(lst))  #将lst转成set数据类型去重后,再转成list数据类型
print (lst) #['A', 'B']

set集合增删改查

s = {'A', 'B', 'A', 'B'}
s.add('c')
print(s)
s.add('c') #重复的内容不会被添加到set集合中
print(s)

s.update(['C','D','E']) #迭代添加
print(s)
s = {'A', 'B', 'C', 'D'}
item = s.pop() # 随机删除一个元素后,返回被删除的值给item
print(item)
print(s)

s.remove('A') #直接删除指定的值
s.clear() #清空set集合,需要注意的是,如果set为空,打印出来则是set(),因为要区分dict
print(s)
# set集合中的数据没有索引. 也没有办法去定位一个元素. 所以没有办法直接修改.
# 我们可以采用先删除后添加的方式来完成修改操作
s = {'A', 'B', 'C', 'D'}
#把A改为E
s.remove('A')
s.add('E')
print(s)
#set 是一个可迭代对象,可通过for循环进行遍历查询
s = {'A', 'B', 'C', 'D'}
for i in s:
	print(i)
  • 常规操作
s = {'A', 'B', 'C', 'D'}
s1 = {'D', 'E', 'F', 'G'}

#交集,获取两个集合中共有的元素
print(s & s1)				#{'D'}
print(s.intersection(s1))  # {'D'}

#并集,合并二个集合的元素,重复的覆盖
print(s | s1)		#{'E', 'C', 'D', 'A', 'G', 'B', 'F'}
print(s.union(s1)) #{'E', 'C', 'D', 'A', 'G', 'B', 'F'}

#差集,得到第一个集合中单独存在的值
print(s - s1) 			#{'A', 'C', 'B'}
print(s.difference(s1)) #{'A', 'C', 'B'}

#反差集,得到两个集合中单独存在的数据
print(s ^ s1)					 #{'C', 'E', 'A', 'G', 'B', 'F'}
print(s.symmetric_difference(s1))#{'C', 'E', 'A', 'G', 'B', 'F'}

s2 = {'A', 'B'}
s3 = {'A', 'B', 'C'}

#子集,用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False。
print(s2 < s3)			#True
print(s2.issubset(s3))	#True

#超集,判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。
print(s2 > s3)			#False
print(s2.issuperset(s3))#False

最后

以上就是典雅银耳汤为你收集整理的Python --基础数据类型(set集合的增删改查及其他相关操作)的全部内容,希望文章能够帮你解决Python --基础数据类型(set集合的增删改查及其他相关操作)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部