python学习day3:函数,,一、set集合:1.
python学习day3:函数,,一、set集合:1.
一、set集合:
1.特点: 访问速度快,去除重复2.set是一个无序且不重复的元素集合3.集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.例:去重1 #!/usr/bin/env python2 # -*- encodeing:UTF-8 -*-3 lst=[1,23,5,4,1,5,4]4 print(set(lst)) 输出:[1,23,5,4]
例:交集、差集
1 #!/usr/bin/env python 2 # -*- encodeing:UTF-8 -*- 3 old_dict ={ 4 "#1":{‘hostname‘:‘c1‘,‘cpu_count‘:2,‘mem_capicity‘:80}, 5 "#2":{‘hostname‘:‘c1‘,‘cpu_count‘:2,‘mem_capicity‘:80}, 6 "#3":{‘hostname‘:‘c1‘,‘cpu_count‘:2,‘mem_capicity‘:80}, 7 } 8 new_dict ={ 9 "#1":{‘hostname‘:‘c1‘,‘cpu_count‘:2,‘mem_capicity‘:800},10 "#3":{‘hostname‘:‘c1‘,‘cpu_count‘:2,‘mem_capicity‘:80},11 "#4":{‘hostname‘:‘c2‘,‘cpu_count‘:2,‘mem_capicity‘:80},12 }13 old=set(old_dict.keys())14 new=set(new_dict.keys())15 updata_set=old.intersection(old)16 del_set=old.symmetric_difference(new)17 add_set=new.symmetric_difference(updata_set)18 print(updata_set)19 print(del_set)20 print(add_set)二、counter计数1.对字典数据的处理,追踪值出现的次数
1 import collections2 obj=collections.Counter(‘fefheufheuf‘)3 #print(obj)4 #for k in obj.elements():5 # print(k)6 for k,v in obj.items():7 print(k,v) 输出:h 2 f 4 u 2 e 3三、orderedDict有序字典1.orderdDict是对字典类型的补充,是dict的子类,它记住了内容添加的顺序。2.按照顺序输出列表到字典
1 # -*- encodeing:UTF-8 -*-2 import collections3 d = collections.OrderedDict()4 d[3]=‘A‘5 d[2]=‘B‘6 d[1]=‘C‘7 for k, v in d.items():8 print(k, v)四、defaultdict默认字典
1 #!/usr/bin/env python 2 # -*- encodeing:UTF-8 -*- 3 import collections 4 def default_factory(): 5 return‘default value‘ 6 d=collections.defaultdict(default_factory,foo=‘bar‘,ok=‘ok‘) 7 print(‘d:‘,d) 8 print(‘foo=>‘,d[‘foo‘]) 9 print(‘ok=>‘,d[‘ok‘])10 print(‘bar=>‘,d[‘bar‘])五、deque双向队列deque,(全名double-ended queue)是一种具有队列和栈的性质的数据结构,双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。
1 #!/usr/bin/env python 2 # -*- encodeing:UTF-8 -*- 3 import collections 4 d=collections.deque(‘abcdefgh‘) 5 print(‘Deque:‘,d) 6 7 #!/usr/bin/env python 8 # -*- encodeing:UTF-8 -*- 9 import collections10 d=collections.deque()11 d.extend(‘abcdefg‘)12 print(‘extend:‘,d)13 d.append(‘h‘)14 print(‘append:‘,d)15 # add to left16 d1=collections.deque()17 d1.extendleft(range(6))18 print(‘extendleft:‘,d1)19 d1.appendleft(6)20 print(‘appendleft:‘,d1)六、queue单向队列Queue.Queue类即是一个队列的同步实现,队列长度可为无限或者有限
1 #!/usr/bin/env python2 # -*- encodeing:UTF-8 -*-3 import queue4 q=queue.Queue()5 q.put(‘123‘)6 q.get(‘4545‘)7 print(q)七、可命名元组根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型
1 #!/usr/bin/env python2 # -*- encodeing:UTF-8 -*-3 import collections4 MytupleClass= collections.namedtuple(‘MytupleClass‘,[‘x‘,‘y‘,‘z‘])5 obj =MytupleClass(11,22,33)6 print(obj.x)7 print(obj.y)8 print(obj.z) 输出:11 22 33八、深浅拷贝切片技术应用于所有的序列,包括:列表、字符串、元祖 ,但切片不能应用于字典。对字典只能使用*.copy()方法或*.deepcopy()方法,深浅拷贝,即可用于序列,也可用于字典
1 n1={‘k1‘:8,‘k2‘:787,‘k3‘:[2,4]} 2 print(id(n1)) 3 n2=copy.copy(n1) 4 print(id(n2)) 5 n3=copy.deepcopy(n1) 6 print(id(n3)) 7 8 n4={‘cpu‘:[90,],‘mem‘:[80,],‘disk‘:[80]} 9 n5 =copy.deepcopy(n4)10 print(n5)11 n5[‘cpu‘][0]=6012 print(n5) 输出:{‘mem‘: [80], ‘disk‘: [80], ‘cpu‘: [90]} {‘mem‘: [80], ‘disk‘: [80], ‘cpu‘: [60]}九、函数1.函数定义:使用def
1 def函数名():2 函数体3 函数名()
1 #!/usr/bin/env python2 def hanshu():3 num1=84 num1+=85 print(num1)6 hanshu() 输出:162.默认参数
1 def wa(a1,a2=232,a3=24):#默认参数必须放在最后2 print(a1,a2,a3)3 wa(a1=53,a2=989)3.动态参数
1 def show(*arg): 2 print(arg,type(arg)) 3 show(78,98) 4 5 def show(**args): 6 print(args,type(args)) 7 show(k1=32,k2=898,k3=343) 8 9 def show (*args,**kwargs):10 print(args,type(args))11 print(kwargs,type(kwargs))12 show(34,43,k1=45,k2=45,)4.内置函数all(),any() #使用bool判断真假 all()bin() 二进制 ord(‘A‘) 字符转换成数字 chr(78)数字转换成字符 random.randint(1,99)随机数callable用法(f=lambda x:x+1 callable(f))#判断真假enumerate用法
1 l1={‘alvin‘,‘boy‘,‘eric‘}2 for i,item in enumerate(l1,1):3 print(i,item) 输出:1 alvin 2 eric 3 boy
map与filte
5.f.tell() #查看当前指针位置 f.seek()#指定当前指针位置python学习day3:函数
相关内容
- 暂无相关文章
评论关闭