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(['', ''])
d.appendleft('')
print(d)
d.extend('')
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}

Python s12 Day3 笔记及作业的更多相关文章

  1. Python s12 Day2 笔记及作业

    1. 元组的元素不可修改,但元组的元素的元素可以被修改. 2. name="eric" print(name.center(20, "*") 3. list=[ ...

  2. Python s12 Day1 笔记及作业

    作业一: 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 python3代码 : # -*- coding:utf-8 -*- input_name = input("Please ...

  3. python s12 day3

    python s12 day3   深浅拷贝 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  4. python2.0 s12 day3

    s12 day3 视频每节的内容 03 python s12 day3 本节内容概要 第三天的主要内容 上节没讲完的: 6.集合 7.collections 1)计数器 2)有序字典 3)默认字典 4 ...

  5. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  6. c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具

    c#实例化继承类,必须对被继承类的程序集做引用   0x00 问题 类型“Model.NewModel”在未被引用的程序集中定义.必须添加对程序集“Model, Version=1.0.0.0, Cu ...

  7. 《简明python教程》笔记一

    读<简明Python教程>笔记: 本书的官方网站是www.byteofpython.info  安装就不说了,网上很多,这里就记录下我在安装时的问题,首先到python官网下载,选好安装路 ...

  8. python 正则使用笔记

    python正则使用笔记 def remove_br(content): """去除两边换行符""" content = content.r ...

  9. 【Python】:简单爬虫作业

    使用Python编写的图片爬虫作业: #coding=utf-8 import urllib import re def getPage(url): #urllib.urlopen(url[, dat ...

随机推荐

  1. 总结各种排序算法【Java实现】

    一.插入类排序 1.直接插入排序 思想:将第i个插入到前i-1个中的适当位置 时间复杂度:T(n) = O(n²). 空间复杂度:S(n) = O(1). 稳定性:稳定排序. 如果碰见一个和插入元素相 ...

  2. IOS学习【xcode 7新特性url链接】

    由于xcode7的更新,在访问http链接的时候会输出错误信息 The resource could not be loaded because the App Transport Security ...

  3. MPLS VPN随堂笔记3

    跨域 ASBR之间运行MPBGP 1.配置AS内部IGP保证环回口互相可达,同时建立LDP邻居 (优先启用 mpls label rang 16 100)方便查看实验现象 2.配置PE1-PE2 PE ...

  4. 自制mpls ldp实验

    实验步骤 步骤1:完成EIGRP BGP 及宣告配置 步骤2:完成LDP 的配置 过程校验 步骤1:校验和理解LDP 邻居关系的发现和邻接关系的建立 R4#show mpls ldp discover ...

  5. ★电车难题的n个坑爹变种

    哲学家都不会做的电车难题变异 此题会答清华北大 "电车难题(Trolley Problem)"是伦理学领域最为知名的思想实验之一,其内容大致是: 一个疯子把五个无辜的人绑在电车轨道 ...

  6. 第二次作业:编写一个四则运算的"软件"

    - 题目: 请编写一个能自动生成小学四则运算题目的 “软件”. 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. 需求分析: ●基本功能 ●实现100以内的加法 ●实现100以内 ...

  7. 【Beta阶段】第五次scrum meeting

    Coding/OSChina 地址 1. 会议内容 学号 主要负责的方向 昨日任务 昨日任务完成进度 接下去要做 99 PM 查阅换肤功能相关资料 100% 着手联网功能 100 DEV 完成分享邀请 ...

  8. 201521123112《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 下面先贴出contains的源代码: public boolean cont ...

  9. 201521123056 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 答: 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译 ...

  10. 201521044091 《Java程序设计》第3周学习总结

    1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 本周学习总结 ...