python之路:进阶 二
| 一、collection系列 |
#!/usr/bin/env python
# --*--coding:utf-8 --*--
import collections
c = collections.Counter("sdsasdsa")
print c
输出结果是:
Counter({'s': 4, 'a': 2, 'd': 2})
如果说提取里面的值就需要用到
b = collections.Counter('aswedswedswedswed')
print b
b.update(c) #把c添加到b里面
print b
输出结果是:
Counter({'s': 4, 'a': 2, 'd': 2})
Counter({'s': 4, 'e': 4, 'd': 4, 'w': 4, 'a': 1})
Counter({'s': 8, 'd': 6, 'e': 4, 'w': 4, 'a': 3})
import collections
c = collections.Counter("sdsasdsa") #打印出后面重复的字符串
print c
print c.most_common(3) #显示前几个
输出结果是:
Counter({'s': 4, 'a': 2, 'd': 2})
[('s', 4), ('a', 2), ('d', 2)]
print sorted(b) #按顺序打印元素
print b
输出结果是:
Counter({'s': 4, 'e': 4, 'd': 4, 'w': 4, 'a': 1})
['a', 'd', 'e', 's', 'w']
from collections import defaultdict
values = [11, 22, 33,44,55,66,77,88,99,90]
my_dict = defaultdict(list)
for value in values:
if value>66:
my_dict['k1'].append(value)
else:
my_dict['k2'].append(value)
print my_dict
输出结果是:
defaultdict(<type 'list'>, {'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99, 90]})
3、有序字典(orderedDict )
from collections import OrderedDict
a = {'a':1 , 'b':2 , 'c': 3}
print OrderedDict(sorted(a.items(), key=lambda t: t[1]))
print OrderedDict(sorted(a.items(), key=lambda t: len(t[0])))
print OrderedDict(sorted(a.items(), key=lambda t: t[1]))
输出结果是:
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
OrderedDict([('a', 1), ('c', 3), ('b', 2)])
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
4、可命名元组(namedtuple)
Mytuple = collections.namedtuple('Mytuple',['x', 'y']) #新建元组
old = Mytuple(1, 2)
print old
new = Mytuple(1,2)
print new
输出结果是:
Mytuple(x=1, y=2)
Mytuple(x=1, y=2)
5、双向队列(deque)
q = collections.deque() #加双向队列
q.append(11) #添加队列
q.append(12)
q.append(13)
print q
print q.popleft() #左边取值
print q.pop() #右边取值
import Queue #模块
q = Queue.Queue()
q.put(1) #价值
q.put(2)
q.put(3)
print q.get(1) #取值
#vars() = 当前模块的所有变量
# print vars()
# {'__builtins__': <module '__builtin__' (built-in)>, '__file__': 'D:/s11day2/s11day2/coll.py', '__package__': None, 'collections': <module 'collections' from 'D:\Python27\Lib\collections.pyc'>, '__name__': '__main__', '__doc__': None}
| 二、内置函数 |
内置函数就是,python内部已经定义好的函数
1 >>> li = ['as', 'aa', '']
2 >>> any(li)
3 True
4 >>> all(li)
5 False
6 >>> li = ['as', 'aa', 'as']
7 >>> all(li)
8 True
9 >>> any(li)
True
>>> li = ['', '', '']
>>> any(li)
False
for k,v in enumerate(li, 起始值)
print k,v
| 三、自定义函数 |
自己写好的函数,在用的时候调用,不用的时候不执行
1 import smtplib
2 from email.mime.text import MIMEText
3 from email.utils import formataddr
4 def email(message): #收件人可以是一个列表多个参数receiver
5 msg = MIMEText(message, 'plain', 'utf-8')
6 msg['From'] = formataddr(["发件者姓名",'发件邮箱'])
7 msg['To'] = formataddr(["收件者姓名",'收件箱'])
8 msg['Subject'] = "主题"
9 server = smtplib.SMTP("smtp.qq.com", 25)
server.login("发件邮箱", "密码")
server.sendmail('发件邮箱', ['收件箱',], msg.as_string())
server.quit()
#在加一个for循环
1 if __name__ == '__main__':
2 cpu = 90
3 disk = 100
4 ram = 50
5 for i in range(1):
6 if cpu > 80:
7 alert = u"CPU报警"
8 email(alert)
9 if disk > 120:
alert = u"disk报警"
emial(alert)
if ram > 20:
alert = u"内存报警"
email(alert)
| 四、动态参数 |
图解:

1 >>> def func(*arg):
2 ... print arg
3 ...
4 >>> func()
5 ()
6 >>> func(1)
7 (1,)
8 >>> func(1,2)
9 (1, 2)
>>> func(1,2,3)
(1, 2, 3)
>>> li = (11,22,33,44,55,66)
>>> func(li)
((11, 22, 33, 44, 55, 66),)
>>> func(*li)
(11, 22, 33, 44, 55, 66)
1、接受多个参数
1 func(**dic)
2 >>> def func(**kwargs):
3 ... print kwargs
4 ...
5 >>> func()
6 {}
7 >>> func(123)
8 Traceback (most recent call last):
9 File "<stdin>", line 1, in <module>
TypeError: func() takes exactly 0 arguments (1 given)
>>> func(k1=123,k2=234)
{'k2': 234, 'k1': 123}
>>> ls = {'k1':233, 'k2':345}
>>> func(**ls)
{'k2': 345, 'k1': 233}
两个动态函数结合
python之路:进阶 二的更多相关文章
- 第十三章:Python の 网络编程进阶(二)
本課主題 SQLAlchemy - Core SQLAlchemy - ORM Paramiko 介紹和操作 上下文操作应用 初探堡垒机 SQLAlchemy - Core 连接 URL 通过 cre ...
- Python之路Day19-Django(二)
本节内容概要: 一.路由系统URL 二.视图 三.模板 四.ORM操作 问题1:Django请求生命周期 -> URL对应关系(匹配) -> 视图函数 -> 返回用户字符串 -> ...
- Python之路Day16--JavaScript(二)
本节内容: 1.上节内容回顾 2.JavaScript补充 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 一.上节内容回顾 1.作业问题: a.页面布局不好 ...
- Python编程-函数进阶二
一.生成器补充 1.什么是生成器? 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要调用自己内置的__iter__方法),所以生成器就是可迭代对象. 2.生成器分类 (1) ...
- 百万年薪python之路 -- 模块二
1. 序列化模块 什么是序列化呢? 序列化的本质就是将一种数据结构(如字典.列表)等转换成一个特殊的序列(字符串或者bytes)的过程就叫做序列化. 为什么要有序列化模块? 如果你写入文件中的字符串是 ...
- python之路十二
本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 外键 增删改查表 权限 事务 索引 python 操作mysql ORM sql ...
- Python之路(二)
(1)python的内置函数(BIF) python3中内置了70多个BIF,常用的几个有: list():创建一个新的空列表. range():输入次数参数,返回一个迭代固定次数的迭代器. enum ...
- python之路----进程二
守护进程 会随着主进程的结束而结束. 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic ...
- 小白学习python之路(二):安装开发工具
引言 上一章我们安装配置了python3.7,这一章我们安装python的开发工具,我用的pycharm2019 安装 工具连接:https://u20538204.ctfile.com/fs/205 ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
随机推荐
- spark第二篇--基本原理
==是什么 == 目标Scope(解决什么问题) 在大规模的特定数据集上的迭代运算或重复查询检索 官方定义 aMapReduce-like cluster computing framework de ...
- flash/flex 编译错误汇总
来源:http://blog.chinaunix.net/uid-366408-id-116463.html 代码 消息 说明 1000 对 %s 的引用不明确. 引用可能指向多项.例如,下面使用 ...
- 使用Visual C++编程
1.Visual C++的主要组件 Visual C++支持遵循C++11语言标准的C++语句,C++11语言标准是在ISO/IEC 14882:2011文档中定义的.Visual C++还没有实现该 ...
- Inno Setup入门(十三)——Pascal脚本(2)
分类: Install Setup 2013-02-02 11:26 794人阅读 评论(0) 收藏 举报 事件函数(2) function CheckPassword(Password: Strin ...
- zk reconnect
http://blog.csdn.net/hengyunabc/article/details/41450003 http://blog.csdn.net/hengyunabc/article/det ...
- jarsigner
开发者应用认领说明 Flyme应用中心应用认领,采用Android的apk安装包签名机制来完成.如果你不清楚签名是什么,请联系开发人员协助您. 在Android平台发布应用程序之前,必须经过一个签名流 ...
- opatch auto in windows db in 11.2.0.4
--prapare:copy 192.168.63.83 D:\oracle_patch\1612 to 192.168.2.169 D:\oracle_patch\1612cd D:\oracle_ ...
- get 和 post请求的区别
(1)GET请求用于获取信息,从Client的角度看,不会改变资源状态,并且多次对同一URL的多个请求应该返回相同的结果. GET请求的参数会显示在URL中,即放置在HTTP协议头中(所 ...
- FZU Problem 1895 整除45问题(整除问题+字符串维护+优化)
这个题有点烧脑啊,但是只要想清楚被45整除的数,肯定能被5和9整除,能被9整除的数各位加起来肯定是9的倍数,能被5整除的末尾是0或5. 然后dfs的过程稍微不太好懂,还有几个优化必须要注意.dfs的过 ...
- CentOS添加字体
到Windows XP或者Vista下复制字体到CentOS 1.到Windows XP或者Vista下复制字体到CentOS 雅黑:msyh 黑体:SimHei 宋体:SimSun 华文细黑:STX ...