Day3 set集合函数和装饰器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day3 set集合函数和装饰器相关的知识,希望对你有一定的参考价值。

set特性:无序,不重复,可嵌套
创建set
set_example = set("123", "213", "234", "432")
s1 = [11,22,33,44,11,22,33]
s2 = set(s1)
print(s2)

list()相当于执行构造方法__int__,内部会执行一个for循环,循环(11,22,33,44,11,22,33)set差异
s1 = {11, 33, 44, 66}
s2 = {22, 33, 44 ,55, 88}

s1中存在s2中不存在
s3 = s1.difference(s2)
print(s3)
差异结果更新到s1中
s1.difference_update(s2)
print(s1)
s1.symmetric_difference_update(s2)
print(s1)

移除指定元素,存在移除,不存在不做任何操作,discard最有用

s1.discard(11)
print(s1)
移除指定元素,不存在报错
s1.remove(11111)
随机移除
s1 = {11, 33, 44, 66}
s3 = s1.pop()
print(s1)
print(s3)
交集
s3 = s1.intersection(s2)
print(s3)
交集更新到s1
s1.intersection_update(s2)
print(s1)
是否父子序列
s1.issubset(s2)
s1.issuperset(s2)
并集
s3 = s1.union(s2)
print(s3)
循环更新(字符串、列表、元组)即可以for循环的对象
s1.update([11,22,33,44,55,66,77,88,99,00])
print(s1)

set练习题

old_dict = {
"#1": 8,
"#2": 4,
"#4": 2,
}

new_dict = {
"#1": 4,
"#2": 4,
"#3": 2,
}
#应该删除哪几个槽位
old_set = set(old_dict.keys())
new_set = set(new_dict.keys())
old_set.difference()
#需要删除的,old中有new中没有
remove_set = old_set.difference(new_set)
print("需要删除的槽位:%s" % remove_set)
#需要增加的,new中有old没有
add_set = new_set.difference(old_set)
print("需要增加的槽位:%s" % add_set)
#需要更新的,old和new的交集
update_set = old_set.intersection(new_set)
print("需要更新的槽位:%s" % update_set)
 

以上是关于Day3 set集合函数和装饰器的主要内容,如果未能解决你的问题,请参考以下文章

浅谈装饰器(Python)

十一 —— 迭代器生成器装饰器

CSIC_716_20191112闭包函数和装饰器

python -- 迭代器和装饰器

python 装饰器

四.Python迭代器生成器和装饰器