专业编程基础技术教程

网站首页 > 基础教程 正文

【学习打卡】P基础知识-数据类型Set(可变集合)

ccvgpt 2024-10-31 12:34:36 基础教程 8 ℃
  • 集合(set)是一个无序的不重复元素序列。
  • 集合有可变集合(set)不可变集合(frozenset)两种。
  • 在形式上,集合的所有元素都放在一对“{}”,两个相邻元素间使用“,”分隔,或者也可以使用 set() 函数创建集合。

集合创建

1、直接使用“{}”创建

setname = {element 1,element 2,element 3,...,element n}

【学习打卡】P基础知识-数据类型Set(可变集合)

  • setname:集合的名称
  • element 1,element 2,element 3,...,element n:集合中的元素,个数没有限制,但必须是python支持的数据类型。

2、使用set()函数创建

setname = set(iteration)

  • setname:集合的名称
  • iteration:要转换为集合的可迭代对象,可以是列表、元组、range对象等,也可以是字符串。如果是字符串,返回的集合将是包含全部不重复字符的集合。

注意

  • 在创建集合时,如果输入了重复的元素,python会自动识别只保留一个
  • 由于python中的set集合是无序的,所以每次输出时元素的排列顺序可能都不相同
  • 创建空集合时,只能使用set()实现,而不能使用“{}”实现,是因为在python中,直接使用“{}”表示创建一个空字典。

集合添加

setname.add(element)

  • setname:集合名称
  • element:要添加的元素内容,只能使用字符串、数字、布尔类型的“True”或“False”及元组等不可变对象,不能使用列表、字典等可变对象
s = set(('a','b','c','d'))
s.add('e')
print(s)

输出:

{'a', 'e', 'd', 'c', 'b'}

setname.update( element )

  • setname:集合名称
  • element:要添加的元素内容,参数可以是列表,元组,字典等。
s = set(('a','b','c','d'))
s.update(['e','f'])
print(s)

输出:

{'a', 'e', 'd', 'c', 'f', 'b'}

集合删除

del命令:删除整个集合

pop()方法:随机删除集合中的一个元素

remove()方法:删除一个元素,但需要判断指定内容是否存在

clear()方法:清空集合,使其变为空集合

s = set(['a','b','c','d'])
s.remove('b')
print("remove:",s)
s.pop()
print("pop:",s)
s.clear()
print('clear:',s)

输出:

remove: {'d', 'c', 'a'}

pop: {'c', 'a'}

clear: set()

集合的交集、并集和差集运算

交集运算“&”符号

并集运算“|”符号

差集运算“-”符号

对称差集运算“^”符号

s1 = set(['a','b','c','d'])
s2 = set(['e','b','f','g'])
print("s1:",s1)
print("s2:",s2)
print("s1和s2的交集:",s1&s2)
print("s1和s2的并集:",s1|s2)
print("s1和s2的差集:",s1-s2)
print("s2和s1的差集:",s2-s1)
print("s1和s2的对称差集:",s1^s2)

输出:

s1: {'b', 'd', 'c', 'a'}

s2: {'f', 'g', 'b', 'e'}

s1和s2的交集: {'b'}

s1和s2的并集: {'g', 'a', 'e', 'd', 'c', 'f', 'b'}

s1和s2的差集: {'c', 'd', 'a'}

s2和s1的差集: {'f', 'g', 'e'}

s1和s2的对称差集: {'g', 'a', 'e', 'd', 'c', 'f'}


列表、元组、字典和集合的区别

数据结构

是否可变

是否重复

是否有序

定义符号

列表 list

可变

可重复

有序

[]

元组 tuple

不可变

可重复

有序

()

字典 dictionary

可变

可重复

无序

{key:value}

集合 set

可变

不可重复

无序

{}

Tags:

最近发表
标签列表