安迪Python

V1

2022/05/29阅读:10主题:默认主题

16 Python 集合16 difference_update()方法更新为差集

16 Python 集合16 difference_update()方法更新为差集

1.语法要点

difference[ˈdɪfrəns]:差异。
update [ˌʌpˈdeɪt]更新。

16-1语法
16-1语法
16-2参数
16-2参数

2.实操练习

(1)参数为集合

# 用{}创建集合
set_1 = {'赵','钱','李'}
set_2 = {'赵','周','李'}
set_3 = {'赵','孙','李'}

print('更新前的集合1:',set_1)
print('更新前的集合2:',set_2)
print('更新前的集合3:',set_3,'\n')

# 将set_1更新为集合1与集合2、3的差集
set_1.difference_update(set_2, set_3) 

print('更新后的集合1:',set_1)
print('更新后的集合2:',set_2)
print('更新后的集合3:',set_3)

【终端输出】

更新前的集合1: {'赵', '李', '钱'}
更新前的集合2: {'赵', '李', '周'}
更新前的集合3: {'赵', '李', '孙'} 

更新后的集合1: {'钱'}
更新后的集合2: {'赵', '李', '周'}
更新后的集合3: {'赵', '李', '孙'}

用difference_update更新集合后:
集合1变成集合1与集合2、3的差集。
差集=删除3个集合都有的元素,,保留集合1特有的元素
集合2、集合3还是原来的集合,没有改变。

(2)参数为列表

# 用{}创建1个集合
set_1 = {1234}

# 用[]创建1个列表
list_1 = [345678]

print('更新前的集合1:',set_1)
print('更新前的列表:',list_1,'\n')

# 将set_1更新为集合与列表的差集
set_1.difference_update(list_1) 

print('更新后的集合1:',set_1)
print('更新后的列表:',list_1)

【终端输出】

更新前的集合1: {1, 2, 3, 4}
更新前的列表: [3, 4, 5, 6, 7, 8] 

更新后的集合1: {1, 2}
更新后的列表: [3, 4, 5, 6, 7, 8]

用difference_update更新集合后:
集合1变成集合与列表的差集。
列表还是原列表,没有改变。

(3)参数为元组

# 用{}创建1个集合
set_1 = {1234}

# 用()创建1个元组
tuple_1 = (13456)

print('更新前的集合1:',set_1)
print('更新前的元组:',tuple_1,'\n')

# 将set_1更新为集合与元组的差集
set_1.difference_update(tuple_1) 

print('更新后的集合1:',set_1)
print('更新后的元组:',tuple_1)

【终端输出】

更新前的集合1: {1, 2, 3, 4}
更新前的元组: (1, 3, 4, 5, 6) 

更新后的集合1: {2}
更新后的元组: (1, 3, 4, 5, 6)

用difference_update更新集合后:
集合1变成集合与元组的差集。
元组还是原来的元组,没有改变。

(4)参数为字典

# 用{}创建1个集合
set_1 = {1234}

# 用{}创建1个字典
dict_1 = {
    1:'学号',
    2:'姓名',
    3:'年龄',
}

print('更新前的集合1:',set_1)
print('更新前的字典:',dict_1,'\n')

# 将set_1更新为集合与字典的差集
set_1.difference_update(dict_1) 

print('更新后的集合1:',set_1)
print('更新后的字典:',dict_1)

【终端输出】

更新前的集合1: {1, 2, 3, 4}
更新前的字典: {1: '学号', 2: '姓名', 3: '年龄'} 

更新后的集合1: {4}
更新后的字典: {1: '学号', 2: '姓名', 3: '年龄'}

用update更新集合后:
集合1变成集合与字典的差集。
字典还是原来的字典,没有改变。

(5)参数为字符串

# 用{}创建1个集合
set_1 = {'1'2'3.3'4}

# 声明一个字符串变量
str_1 = '1'

print('更新前的集合1:',set_1)
print('更新前的字符串:',str_1,'\n')

# 将集合1更新为集合与字符串的差集
set_1.difference_update(str_1)

print('更新后的集合1:',set_1)
print('更新后的字符串:',str_1)

【终端输出】

更新前的集合1: {'3.3', 2, '1', 4}
更新前的字符串: 1 

更新后的集合1: {'3.3', 2, 4}
更新后的字符串: 1

用difference_update更新集合后:
集合1变成集合与字符串的差集。
字符串还是原来的字符串,没有改变。

(6)参数为多个可迭代对象

# 用{}创建2个集合
set_1 = {1239}
set_2 = {3456}

# 用[]创建1个列表
list_1 = [345678]

# 用()创建1个元组
tuple_1 = (13456)

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

print('更新前的集合1:',set_1)

# 将set_1更新为集合与多个可迭代对象的差集
set_1.difference_update(set_2, list_1, tuple_1, dict_1)

print('更新后的集合1:',set_1)

【终端输出】

更新前的集合1: {1, 2, 3, 9}
更新后的集合1: {9}

3.知识回顾

difference()与difference_update()方法的异同点

两个方法的参数一样

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

作用一样

作用都是取集合与多个可迭代对象的差集。

返回值不一样

difference()方法返回的是一个新的集合。
difference_update()方法没有返回值。

difference方法用于取集合1和集合2的差集,并将差集作为一个新的集合返回,且不改变集合1和集合2。
difference_update方法用于取集合1和集合2的差集,并将取到的差集更新到集合1中,改变集合1不改变集合2,且该方法没有返回值。

print("**********difference()方法**********")

# 用{}创建集合
set_1 = {1234}
set_2 = {3456}

# '\n'的作用是输出后换行
print('取差集前的集合1:',set_1)
print('取差集前的集合2:',set_2,'\n')

# difference()方法取两个集合的差集
set_1.difference(set_2)

print('取差集后的集合1:',set_1)
print('取差集后的集合2:',set_2)
print('difference方法的返回的是一个新的集合:',set_1.difference(set_2))

【终端输出】

**********difference()方法**********
取差集前的集合1: {1, 2, 3, 4}
取差集前的集合2: {3, 4, 5, 6} 

取差集后的集合1: {1, 2, 3, 4}
取差集后的集合2: {3, 4, 5, 6}
difference方法的返回的是一个新的集合: {1, 2}

difference方法用于取集合1和集合2的差集,并将差集作为一个新的集合返回,且不改变集合1和集合2。

print("**********difference_update()方法**********")

# 用{}创建集合
set_1 = {1234}
set_2 = {3456}

print('取差集前的集合1:',set_1)
print('取差集前的集合2:',set_2,'\n')

# difference_update()方法取两个集合的差集
set_1.difference_update(set_2)

print('取差集后的集合1:',set_1)
print('取差集后的集合2:',set_2)
print('difference_update方法没有返回值:',set_1.difference_update(set_2))

【终端输出】

**********difference_update()方法**********
取差集前的集合1: {1, 2, 3, 4}
取差集前的集合2: {3, 4, 5, 6} 

取差集后的集合1: {1, 2}
取差集后的集合2: {3, 4, 5, 6}
difference_update方法没有返回值: None

difference_update方法用于取集合1和集合2的差集,并将取到的差集更新到集合1中,改变集合1不改变集合2,且该方法没有返回值。

4.课后总结

16-3集合修改
16-3集合修改

分类:

后端

标签:

Python

作者介绍

安迪Python
V1