标签:set 函数 文件打开 pythonji'ch
基础篇之三:
一,数据类型之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:18ef 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)
指定函数:
#指定参数:即指定将实参赋值给哪个形参,此时可以不按照顺序来写
本文出自 “小虫的快乐” 博客,请务必保留此出处http://bughapply.blog.51cto.com/744579/1795500
标签:set 函数 文件打开 pythonji'ch
原文地址:http://bughapply.blog.51cto.com/744579/1795500