zoukankan      html  css  js  c++  java
  • Python s12 Day3 笔记及作业

    1. Set集合

    old_dict = {
        "#1":{ 'hostname':'c1', 'cpu_count':2,  'mem_capicity':16},
        "#2":{ 'hostname':'c1', 'cpu_count':2,  'mem_capicity':16},
        "#3":{ 'hostname':'c1', 'cpu_count':2,  'mem_capicity':16}
    }
    new_dict = {
        "#1":{ 'hostname':'c1', 'cpu_count':2,  'mem_capicity':32},
        "#3":{ 'hostname':'c1', 'cpu_count':2,  'mem_capicity':16},
        "#4":{ 'hostname':'c1', 'cpu_count':2,  'mem_capicity':16}
    }
    
    old = set(old_dict.keys())
    new = set(new_dict.keys())
    update_set = old.intersection(new)
    print("Update Set:",update_set)
    #delete_set = old.difference(update_set)    #difference是循环old,找出old中不在update_set中的元素
    delete_set = old.symmetric_difference(update_set)  #symmetric_difference是循环old和update_set, 找出两者中不在对方中的元素
    print("delete set:",delete_set)
    #add_set = new.difference(update_set)
    add_set = new.symmetric_difference(update_set)
    print("add set:",add_set)

    2. Counter计数器

    Counter是对字典类型的补充,用于追踪值的出现次数,具备字典的所有功能和自己的功能。

    import collections
    obj
    = collections.Counter('aabbsdfsdgabadsf') print(obj) ret = obj.most_common(4) print(ret)
    -----------------------------------
    Counter({'a': 4, 'b': 3, 's': 3, 'd': 3, 'f': 2, 'g': 1})
    [('a', 4), ('b', 3), ('s', 3), ('d', 3)]

    3. OrderedDict有序字典

    import collections
    dic = collections.OrderedDict()
    dic['k1'] = 'v1'
    dic['k2'] = 'v2'
    dic['k3'] = 'v3'
    print(dic)
    ----------------------------------
    OrderedDict([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])

    4. defaultdict默认字典

    为字典设置默认类型

    dic = collections.defaultdict(list)
    dic['k1'].append('wayne')
    print(dic)
    -----------------------------------
    defaultdict(<class 'list'>, {'k1': ['wayne']})

    5. 可命名元组

    import collections
    #创建类
    MytupleClass = collections.namedtuple('Mytuple',['x','y','z'])
    obj = MytupleClass(11,22,33)
    print(obj.x, obj.y, obj.z)

    6. deque双向队列

    import collections
    d = collections.deque(['2', '3'])
    d.appendleft('1')
    print(d)
    d.extend('4')
    print(d)

    单向队列 Queue.Queue
    单向队列双向队列都是线程安全的

    7. 动态参数

    def show(*args, **kwargs):
        print(args, type(args))
        print(kwargs, type(args))
    
    l = [11,22,33,44]
    d = {'a':1, 'b':2}
    
    show(l, d)
    show(*l, **d)
    ------------------------------------
    ([11, 22, 33, 44], {'a': 1, 'b': 2}) <class 'tuple'>
    {} <class 'tuple'>
    (11, 22, 33, 44) <class 'tuple'>
    {'a': 1, 'b': 2} <class 'tuple'>

    keyword-only参数必须编写在**args任意关键字形式之前,且在*args任意位置形式之后(当二者都有的时候)。

    无论何时,一个参数名称出现在*args之前,它可能是默认位置参数,而不是keyword-only参数:

    def f(a,c=6,*b,**d): print(a,b,c,d)
    >>>f(1,2,3,x=4)
    1 (3,) 2  {'x':4}
  • 相关阅读:
    关于MySQL错误 2005
    Eclipse如何导入第三方jar包
    Codeforces Round #377 (Div. 2) D. Exams
    18110 Koishi's travel, Satori's travel
    用Java做的类似皇家守卫战的游戏
    Notepad++如何编译、运行Java
    Codeforces Round #341 (Div. 2)--C. Wet Shark and Flowers
    hdu 2120 Ice_cream's world I
    FZU 1851 组合数
    HUST 1599 Multiple
  • 原文地址:https://www.cnblogs.com/wayneiscoming/p/7619729.html
Copyright © 2011-2022 走看看