基础篇之三:
一,数据类型之set.
总结:set无序,不重复。
1,创建set:
s = {1,2,3} print(s,type(s)) list1 = [1,2,3] s1=(list1) print(s1,type(list1)) s2 = set() print(s2,type(s2))
{1, 2, 3} <class ‘set‘> [1, 2, 3] <class ‘list‘> set() <class ‘set‘>
2,set方法
1,添加元素:(s.add)
2,清除元素:(s.clear)
3,s1中存在,s2中不存在:(s3=s1.difference(s2))
4,移除元素并不报错:(s.discard())注:删除的元素不在集合里也不会报错
5,移除并报错:(s.remove())注:删除的元素不在集合里会报错
6,移除某个元素,且随机移除:(s.pop)
7,取交集:(s.intersection)
8,取并集:(s.union)
#实例: s = {1,2,3,4,5} s.add(123)#1,添加元素.add print(s) #显示结果: {1, 2, 3, 4, 5, 123} 02:清除元素 .clear s = {1,2,3,4,5} s.clear() print(s) #显示结果: set() #03:s1中存在,s2中不存在: s1 = {11,22,33} s2 = {22,33,44} s3=s1.difference(s2) print(s3) #显示结果: {11} #04:移除指定元素不报错 s = {33,4,55,66} s.discard(66) #移除指定元素 b不报错 print(s) #显示结果: {22,4,55} #06:取交集: s1={11,22,33,44} s2={33,44,55} #s.intersection()#取交集 s3= s1.intersection(s2) print(s3) #显示结果: {33,44} #07:取并集 s1={11,22,33,44} s2={33,44,55} # set.union()#取并集 s3= s1.union(s2) print(s3) #显示结果: {33,22,55,11,44} #08:instersection_updete s1 = {11,22,33,44,55} s2 = {11,22,33,44} s1.intersection_update(s2) print(s1) #显示结果: {33, 11, 44, 22} #09集合issubset和issuperset的使用 s1 = {11,22,33,44,55} s2 = {11,22,33,44} s3 = {66,77,88} s4 = s2.issubset(s1) s5 = s1.issuperset(s2) print(s4) print(s5) #显示结果: True True
二:集合的应用:
CMDB
old_dict = { "#1":8, "#2":4, "#4":2, } new_dict = { "#1":4, "#2":4, "#3":2, } renew_dict = { "#1":4, "#2":4, "#3":2, }
思路:
应该删除哪几个槽位:old中存在的new不存在 old.difference(new) 应该更新哪几个槽位:new中存在old中不存在 new.difference(old) 应该增加哪几个槽位:old和new中都存在 old.intersection(new) old: new: 第一步:将第二步:更新old_dict存在,new不存在 old_keys = old_dict.keys() new_keys = new_dict.keys() old_set = (old_keys) new_set = (new_keys) remove_set = old_set.difference(new_set) new中存在,old中不存在 remove_set = new_set.difference(old_set) new和old中都存在 update_set = old_set.intersection(new_set)
代码:
old_keys = old_dict.keys() old_set = set(old_keys) new_keys = new_dict.keys() new_set = set(new_keys) print(new_set) print(old_set) remove_set = old_set.difference(new_set) add_set = new_set.difference(old_set) update_set = new_set.intersection(old_set) print(remove_set) print(add_set) print(update_set)
三:函数
函数:自定义函数与内置函数.
函数:
1,def关键字,创建函数。
2,函数名 函数的名称,日后根据函数名调用函数
3,参数 为函数体提供数据
4,函数体 函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
5,返回值 当函数执行完毕后,可以给调用者返回数据。
例子:
def 函数名(参数): ... 函数体 ... return
返回值:函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。
def 发送短信(): 发送短信的代码... if 发送成功: return True else: return False while True: # 每次执行发送短信函数,都会将返回值自动赋值给result # 之后,可以根据result来写日志,或重发等操作 result = 发送短信() if result == False: 记录日志,短信发送失败...
参数:
#函数的基本参数
#1,形式参数
#2,实际参数
#3,默认参数 必须放在参数列表末尾
#4,指定参数
#5,动态参数 * ** args kwargs
# ######### 定义函数 ######### # name 叫做函数func的形式参数,简称:形参 def func(name): print(name) # ######### 执行函数 ######### # ‘anka‘ 叫做函数func的实际参数,简称:实参 func("anka")
def func(name, age = 18): print("%s:%s" %(name,age)) # 指定参数 func(‘anka‘, 19) # 使用默认参数 func(‘leo‘) 注:默认参数需要放在参数列表最后 默认参数 #显示结果: anka:19 leo:18
ef func(*args): print(args) # 执行方式一 func(11,33,4,4454,5) # 执行方式二 li = [11,2,2,3,3,4,54] func(*li) #动态参数一 #显示结果: (11, 33, 4, 4454, 5) (11, 2, 2, 3, 3, 4, 54)
指定函数:
#指定参数:即指定将实参赋值给哪个形参,此时可以不按照顺序来写
时间: 2024-10-13 11:58:03