python-集合set

1、集合特点

1.1、集合是无序元素的集合,
1.2、集合中的元素不可重复
1.3、创建完成后,其中的元素不可更改
1.4、整个集合是可以更改,可以向其增加元素,也可以从中删除元素。
即:我们无法修改集合中的元素,但是我们可以对整个集合进行添加或者是删除等更改的操作

2、集合创建

集合的创建非常简单,只需要将以逗号分隔的元素放在花括号 {} 中,{元素1,元素2,元素3,…,元素n}

>>> set1={1,2,'e',4}
>>> type(set1)
<class 'set'>

>>> set2={1,2,'e',4,4,2}
>>> set2 #重复元素打印时只显示一个
{1, 2, 4, 'e'}

3、获取集合

  • 通过 for 循环遍历集合的元素, 元素的顺序主要应用在索引中,集合中的元素是无序的,也就无法应用索引进行访问了
for novel in novels:
   print(novel)
  • 使用 in 关键字来判断集合中是否存在某个元素,如果元素在集合内,返回 True,如果元素不在集合内,返回 False
print('鸳鸯刀' in novels)

4、修改集合

  • 方法:add() and update()
  • 作用:add() 和 update() 都可用于向集合添加元素
  • 语法规则:集合名.add(元素名)、集合名.update({元素1,元素2,…,元素n})
  • 区别:add() 和 update() 的一个区别是 add() 添加的是一个元素;update() 添加的是集合或者是列表,添加的是多个元素
novels = {'飞狐外传', '雪山飞狐', '连城诀', '天龙八部', '射雕英雄传', '白马啸西风', '鹿鼎记'}
novels.add('笑傲江湖')
print(novels)
novels.add('书剑恩仇录')
print(novels)
novels.add('神雕侠侣')
print(novels)
novels.update({'侠客行', '倚天屠龙记'})  # update 的参数为集合
print(novels)
novels.update(['碧血剑', '鸳鸯刀'])
print(novels)  # update 的参数为列表

5、删除集合

  • 方法:discard() and remove()
  • 语法规则:集合名.discard()、集合名.remove()。
  • 区别:这两个函数的区别在于,从集合中删除一个不存在的元素时,discard() 不会执行任何操作,而 remove() 会抛出一个异常
novels.discard('飞狐外传')
print(novels)
novels.remove('雪山飞狐')
print(novels)

6、集合操作

6.1并集
  • 语法规则一:集合1.union(集合2)
    print(novels_1.union(novels_2))
  • 语法规则二: 集合1|集合2
    print(novels_1 | novels_2)
6.2交集
  • 语法规则一: 集合1.intersection(集合2)
    print(novels_1.intersection(novels_2))
  • 语法规则二:集合1 & 集合2
    print(novels_1 & novels_2)
6.3差集
  • 语法规则一:集合1.difference(集合2):即实现属于集合 1 不属于集合 2 的差集

print(novels_1.difference(novels_2))
// 当集合 novels_1 在 difference() 之前时,打印的是属于集合 novels_1 不属于集合 novels_2 的元素集合,集合 novels_2 在 difference() 之前时,打印的是属于集合 novels_2 不属于集合 novels_1 的元素集合

  • 语法规则二: 集合1-集合2:即实现属于集合 1 不属于集合 2 的差集
    print(novels_1 - novels_2)
6.4对称差集
  • 说明:对称差集就是属于集合 A,不属于集合 B 的以及属于集合 B 不属于集合 A 的元素集合,就是集合 A 与集合 B 的并集减去集合 A 与集合 B 的交集
  • 语法规则一:集合1.symmetric_difference(集合2)
    print(novels_1.symmetric_difference(novels_2))
  • 语法规则二:集合1^集合2
    print(novels_1 ^ novels_2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值