zoukankan      html  css  js  c++  java
  • python学习day3:函数

    一、set集合:

    1.特点:  访问速度快,去除重复
    2.set是一个无序且不重复的元素集合
    3.集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.
    例:去重
    1     #!/usr/bin/env python
    2     # -*- 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 collections
    2     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 collections
    3     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 collections
    10     d=collections.deque()
    11     d.extend('abcdefg')
    12     print('extend:',d)
    13     d.append('h')
    14     print('append:',d)
    15     # add to left
    16     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 python
    2     # -*- encodeing:UTF-8 -*-
    3     import queue
    4     q=queue.Queue()
    5     q.put('123')
    6     q.get('4545')
    7     print(q)
    七、可命名元组
    根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型
    1     #!/usr/bin/env python
    2     # -*- encodeing:UTF-8 -*-
    3     import collections
    4     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]=60
    12     print(n5) 输出:{'mem': [80], 'disk': [80], 'cpu': [90]} {'mem': [80], 'disk': [80], 'cpu': [60]}
    九、函数
    1.函数定义:使用def
    1     def函数名():
    2     函数体
    3     函数名()
    1 #!/usr/bin/env python
    2 def hanshu():
    3 num1=8
    4 num1+=8
    5 print(num1)
    6 hanshu() 输出:16
    2.默认参数
    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()#指定当前指针位置
  • 相关阅读:
    HDU6060 RXD and dividing
    Knapsack in a Globalized World --多重完全背包
    hdu 6058 Kanade's sum
    矩形面积 HDU
    Bridge Across Islands POJ
    Manors HDU
    Harry Potter and J.K.Rowling HDU
    Polygons HDU
    Jungle Outpost HDU
    CRB and Farm HDU
  • 原文地址:https://www.cnblogs.com/Xiaolong-Lv/p/5143902.html
Copyright © 2011-2022 走看看