集合

集合

特点:无序的,元素不能重复
使用场景:只关心元素是否出现,不管先出现顺序和次数
常用来‘去重’,检查元素是否出现过;求交,并,补集
语法:大括号括住,里面逗号分隔里面单个项,跟字典里的键值对不同

创建

1.创建空集合
set1 = set()
2.创建非空集合
set1 = {‘a’, ‘b’, ‘c’}
大括号括住,里面每一个元素不是键值对,跟列表项类似。
3.去重,自动去重
语法:set([])

添加项
set1 = {'a', 'b', 'c'}
set1.add('d')
set1  → {'a', 'b', 'd', 'c'}    可以看出集合无序特性
删除项

1.remove()根据项删除

set1 = {'a','b','c','d'}
set1.remove('a')
print(set1)

2.全部删除

set1 = {'a','b','c','d'}
set1.clear()
print(set1)

3.pop()从集合里删除一个元素并返回,如果集合空的话会报错

set4 = {2,5,8,7}
set4.pop()
print(set4)
去重

1.可以保持之前的排列顺序

a = [1,2,3,3,4,2,3,4,5,6,1]
b = []
for i in a:
    if i not in b:
        b.append(i)
print(b)

2.通过set方法进行去重,不能保持之前的排列顺序

a = [1,4,3,3,4,2,3,4,5,6,1]
a = list(set(a))           # 以转化为列表的方式进行去重,列表中的每一项不能重复
print(a)

3.使用itertools模块
sort函数 sort并不是简单的快速排序,它对普通的快速排序进行了优化,
此外,它还结合了插入排序和推排序。系统会根据你的数据形式和数据量自动选择合适的排序方法,
这并不是说它每次排序只选择一种方法,它是在一次完整排序中不同的情况选用不同方法。

import itertools
a = [1,4,3,3,4,2,3,4,5,6,1]
a.sort()
it = itertools.groupby(a)
for k, g in it:
    print(k)

4.无法保持原有的顺序

list = [1,4,3,3,4,2,3,4,5,6,1]
liebiao=set(list)
print(list)
交、并、差、补

1.并集 数学标记∪,程序符号是 | 。
。注意集合运算用的是自己一套运算符号,不能用and or之类比较条件的符号。
并集表示一个元素可能属于集合A,或者属于集合B。

set1 = {1,2,3}
set2 = {3,6,7}
set1 | set2   →  {1, 2, 3, 6, 7}

2.交集 。 数学标记 ∩,程序中的符号是&。
一个元素既属于集合A又属于集合B。

set1 = {1,2,3}
set2 = {3, 6, 7}
set1 & set2 → {3}

3.差集。 程序符号 - 。
A-B表示一个元素属于但不属于集合B

set1 = {1,2,3}
set2 = {3, 6, 7}
set1 - set2  →  {1, 2}

4.子集 补集。
子集。集合B的每一个元素都属于集合A,A包含B,B是A的子集。
补集。在A中,属于A但不属于B,叫B的补集。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值