Python 集合15 difference()方法:返回集合的差集

15 difference()方法:返回集合的差集

1.语法要点

difference()方法用于返回集合的差集。
作用和符号-取差集一样。

set_1.difference(set_2) 删除两个集合都有的元素,保留集合1特有的元素。
set_2.difference(set_1) 删除两个集合都有的元素,保留集合2特有的元素。
顺序很重要,谁在前就保留谁特有的元素。

difference 和符号-的作用一样,都是取差集。
不同点是:
符号-只能取集合之间的差集。
difference()方法可以取集合与可迭代对象之间的差集。

difference()方法的参数是可迭代对象:列表、元组、字典、集合、字符串。
difference()方法的参数不可以是整数、浮点数。

在这里插入图片描述

在这里插入图片描述

2.实操练习

2.1参数为集合

# 用{}新建3个集合
set_1 = {1, 2, 3}
set_2 = {5, 4, 3}
set_3 = {5, 1, 3}

# 计算集合与集合的差集
print('集合1与集合2的差集:',set_1 - set_2)
print('集合1与集合2的差集:',set_1.difference(set_2),'\n')

print('集合1与集合2、3的差集:',set_1 - set_2 - set_3)
print('集合1与集合2、3的差集:',set_1.difference(set_2, set_3))

【终端输出】

集合1与集合2的差集: {1, 2}
集合1与集合2的差集: {1, 2} 

集合1与集合2、3的差集: {2}
集合1与集合2、3的差集: {2}

集合1与集合2都有的元素是3,集合1与集合2的差集以集合1为准,删除都有的元素3,保留集合1特有的元素1、2,因此集合1与集合2的差集为1,2。

集合1与集合2、3的差集先计算集合1与集合2的差集,结果为元素1、2。
然后计算与集合3的差集,元素1、2与集合3都有的元素是1,以集合1为准,删除都有的元素1,保留元素2,因此集合1与集合2、3的差集为2。

2.2参数为列表

# 用{}新建1个集合
set_1 = {1, 2, 3}
# 声明列表
list_1 = [1,2]

# 计算集合与列表的差集
print('集合1与列表的差集:',set_1.difference(list_1))

【终端输出】

集合1与列表的差集: {3}

2.3 参数为元组

# 用{}新建1个集合
set_1 = {1, 2, 3}
# 声明元组
tuple_1 = (2,3)

# 计算集合与元组的差集
print('集合1与元组的差集:',set_1.difference(tuple_1))

【终端输出】

集合1与元组的差集: {1}

2.4 参数为字典

# 用{}新建一个集合
set_1 = {3,4,5}

# 用{}新建一个字典
dict_1 = {
    1:'姓名',
    2:'学号',
    3:'性别'
}

# 计算集合与字典的差集
print(set_1.difference(dict_1))

【终端输出】

{4, 5}

2.5 参数为字符串

# 用{}新建一个集合
set_1 = {'1', '2', '3'}

# 声明一个字符串
str_1 = '246'

print('集合与字符串的差集:',set_1.difference(str_1))

【终端输出】

集合与字符串的差集: {'3', '1'}

2.6 参数为可迭代对象

# 用{}新建3个集合
set_1 = {1, 2, 8}
set_2 = {5, 4, 3}
set_3 = {5, 1, 3}

# 声明列表
list_1 = [1,2]

# 声明元组
tuple_1 = (2,3)

# 用{}新建一个字典
dict_1 = {
    1:'姓名',
    2:'学号',
    3:'性别'
}

# 声明一个字符串
str_1 = '246'

print('计算集合与多个可迭代对象的差集:',set_1.difference(set_2, list_1, tuple_1, dict_1, str_1))

【终端输出】

计算集合与多个可迭代对象的差集: {8}

3.综合练习

'''
任务:自定义一个函数,获取两个列表的差集。    
步骤1.用set方法将列表转换为集合;
步骤2.用difference方法计算2个集合的差集;
步骤3.用list函数将结果转换为列表。
'''
# 用def自定义一个函数
def difference (a,b ) :
    #用set方法将列表转换为集合;
    set_1 = set(a)
    set_2 = set(b)

    #用difference方法计算2个集合的差集;
    set_3 = set_1.difference(set_2) 
    
    # 将得到的结果转换为列表
    return list(set_3)

# 传入实参
# 相当于a = [1,2,3,4]
# 相当于b = [2,4,6]
print(difference( [1,2,3,4],   [2,4,6]) )

【终端输出】

[1, 3]

4.课后总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值