学习python第九节课:集合(set)

本文详细介绍了Python中的集合(set),包括如何创建集合、使用set()函数转换序列及字典、添加元素(add()和update())、删除元素(remove()、discard()和clear())、集合的常用操作(如交集、差集、并集等)以及各种集合方法的使用,如add()、update()、difference()等。
摘要由CSDN通过智能技术生成

一、集合 (set)

在python中,集合是一个无序的不重复元素序列,因此集合通常用来去除重复的元素,创建集合可以使用set函数或者大括号{},两个集合之间可以做并集,交集,差集操作。

集合和列表非常的相似,不同点有3点:

  1. 集合中只能存储不可变对象
  2. 集合中存储的对象是无序的(不是按照元素的插入顺序保存的)
  3. 集合中不能出现重复的元素

集合中的元素有3个特性:

  1. 确定性:给定一个集合,任何对象是不是这个集合的元素是确定的了。
  2. 互异性:集合中的元素一定是不同的。
  3. 无序性:集合中的元素没有固定的顺序。

1.1 创建集合(set)

创建集合使用{}set(), 但是如果要创建空集合只能使用set(),因为{}用来创建空字典。

set_1 = {
   10, 20, 30, 40, 50}
print(set_1)  # {40,10,20,50,30}

set_2 = {
   10, 30, 20, 10, 30, 40, 30, 50}
print(set_2)  # {40,10,20,50,30}

set_3 = set('abcdefg')
print(set_3)  # {'c','e','a',,'f','g','b','d'}

set_4 = set()
print(type(set_4))  # 空集合

set_5 = {
   }
print(type(s5))  # dict

set_6 = {
   'python', 32, 983.9, 'python', 'php'}
print(set_6)  # {32, 'php', 'python', 983.9}
  • 集合里数据不会重复,即便set_6在创建时,内部有两个’python’ 字符串,在赋值语句执行结束后,set_6里将只有1个’python’

  • 创建一个空集合,一定要用set(),而不是{}, {}用来表示空字典。

  • 集合里每个数据之间用逗号分隔,集合里的数据必须是可hash的,因此,集合里不能有字典,集合,列表这三种数据。

1.2 set()函数转换序列及字典

  • set()函数可以将序列及字典转换为集合。
set_7 = set ([1,2,3,4,5,2,2])
print(set_7,type(set_7))  # {1, 2, 3, 4, 5} <class 'set'>

set_8 = set({
   'a':1,'b':2,'c':3})
print(set_8,type(set_8))   # {'c', 'b', 'a'} <class 'set'>

如果使用set()将字典转换为集合的时候,只会包含字典的键

1.3 添加元素

1.3.1 add()

  • add(),追加单一数据。
se = set()
se.add('python')
se.add('python')
se.add('php')
se.add('java')

print(se,len(se))  # {'java', 'php', 'python'} 3

因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。上面的代码虽然添加了两次’python’,但最终集合中只有一个’python’。

1.3.2 update()

  • update(), 追加的数据是序列。
s1 = {
   10, 20}
s1.update([100, 200])
s1.update('abc')
print(s1)
# s1.update(100)  # 报错

1.4 删除元素

1.4.1 remove()

  • remove(),删除集合中的指定数据,如果数据不存在则报错。
set = {
   10, 20}

set.remove(10)
print(set)  # {20}

set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值