01-python进阶-拾遗
列表复习
append(x)追交到链尾
extend(L)追加一个列表 等价于 +=
insert(i,x)在位置i处插入x
remove(x) 删除一个值为x的元素 如果没有抛出异常
sort() 直接修改列表为排序过的
sorted(L) 返回排序后的L 元祖 一旦初始化便不能修改的数据结构 比列表快
集合 (set) 无序不重复的元素集 不保证是有序
字典(dict) 关键字不可变类型 如字符串 整数 只包含 不可变对象的元祖 关于字典 功能非常强大 我们可以做的事情很多比如
def leijia(x,y):
a = 0
for i in xrange(x,y+1):
a += i
return a
def plus(x,y):
return x+y matruix = {
'+':plus,
'leijia':leijia, } def size(x,oper,y):
return matruix[oper](x,y) print(size(1,'leijia',2))
我们可以做一个switch case的模式
#filter
a = [1,2,3,4]
filter(lamda x:x%2,a)
[1,3]
#map 返回序列 为对原序列每个元素分别调用function获得的可以传入多个序列 但是function 也要有相应多的参数
map(lambda x,y,z:x+y+z,range(1,3),range(3,5),range(5,7))
计算过程 1+3+5 = 9 2+4+6=12 结果 [9,12]
接下来我们要实现
l1 = [1,2,3,4]
oper = ['+','-','leijia','*']
l2 = [2,44,55,66] #l1[0] "oper[0]" l2[0]=? ...
def plus(x,y):
return x+y def jian(x,y):
return x-y def leijia(x,y):
a = 0
for i in(x,y):
a +=1 return a def size(x,oper,y):
return my_dict[oper](x,y) def chengji(x,y):
return x*y
my_dict = {
'+':plus,
'-':jian,
'leijia':leijia,
'*':chengji,} l1 = [1,2,3,4]
oper = ['+','-','leijia','*']
l2 = [2,44,55,66]
#L1[0] "oper[0]" L2 = ? .... res = map(size,l1,oper,l2)
print(list(res))
结果是[3, -42, 2, 264]
#reduce
reduce(function,sequence,[init])
返回一个单值为,计算步骤为:
1 第一个结果=function(sequence[0],squence[1])
2第二个结果=function(第一个的结果,sequence[2])
3返回最后一个计算得值
4 如果有init 则先调用 function(init,sequence[0])
5 sequence 只有一个元素时候,返回该元素 为空时抛出异常
如 reduce(lambda x,y:x+y,range(3),99)的计算过程为
99+0 =99=》99+1=100=》100+2返回102
住 实际使用过程中建议使用内建函数sum来完成这个累加更合适 这里等价为 sum(range(3),99)
#zip 用于多个sequence的循环
01-python进阶-拾遗的更多相关文章
- python进阶01 面向对象、类、实例、属性封装、实例方法
python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“ ...
- Python进阶量化交易场外篇4——寻找最优化策略参数
新年伊始,很荣幸笔者的<教你用 Python 进阶量化交易>专栏在慕课专栏板块上线了,欢迎大家订阅!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外会陆续推出一些手记来辅助同学们学习 ...
- Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究
Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究 一丶反射 什么是反射: 反射的概念是由Smith在1982年首次提出的 ...
- Python进阶:函数式编程实例(附代码)
Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...
- Python进阶 - 对象,名字以及绑定
Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...
- Python进阶-继承中的MRO与super
Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...
- Python进阶 - 命名空间与作用域
Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...
- python进阶学习笔记(一)
python进阶部分要学习的内容: 学习目标: 1.函数式编程 1.1,什么是函数式编程 函数式编程是一种抽象计算的编程模式 不同语言的抽象层次不同: 函数式编程的特点: python支持的函数式编程 ...
- 【python进阶】详解元类及其应用2
前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...
- 【python进阶】Garbage collection垃圾回收2
前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...
随机推荐
- azure powershell 获取可用镜像列表
通过Azure Powershell 指定location和Pbulishername 获取所有可用镜像的 publisherName,Offer,Skus,Version,location信息列表 ...
- LR脚本示例之URL请求(post、get)
Action(){ //application/x-www-form-urlencoded //application/json //web_add_auto_header("Content ...
- SQLServer 2012 Always on配置全过程
AlwaysOn取数据库镜像和故障转移集群之长.AlwaysOn不再像故障转移集群那样需要共享磁盘,从而主副本和辅助副本可以更容易的部署到不同的地理位置:AlwaysOn还打破了镜像只能1对1的限制, ...
- jsHint-静态代码检查工具eclipse中使用
今天介绍一个关于js静态代码的检查工具,此工具可以帮助更好的规范代码的编写形式以及检查错误.由于jslint的分支jsHint有跟多的配置项相对使用也比较方便,依次本文主要介绍jsHint的使用方式. ...
- HDU 3001 Travelling (状压DP,3进制)
题意: 给出n<=10个点,有m条边的无向图.问:可以从任意点出发,至多经过同一个点2次,遍历所有点的最小费用? 思路: 本题就是要卡你的内存,由于至多可经过同一个点2次,所以只能用3进制来表示 ...
- 在windows 上编译部署Rap2
在windows 上编译部署Rap2 引言 安装需要的环境 安装后端站点 创建数据库 在全局安装pm2 和 typescript 配置mysql,redis 数据库链接配置 初始化 编译 初始化数据库 ...
- 生成gt数据出问题
使用cout打印uchar类型数据时,打印出来是其相应的ascii码
- 查看nvidia的GPU
nvidia-smi就可以查看,可以看到进程的占用率,可以kill杀掉进程 注意这里的-前后都不要空格,连起来写
- 字符编码:BSTR
typedef wchar_t WCHAR; typedef WCHAR OLECHAR; typedef OLECHAR __RPC_FAR *BSTR;;
- J.U.C知识点梳理
java.util.concurrent : 提供了并发编程的解决方案 1.CAS 是java.util.concurrent.atomic包的基础 2.AQS是java.util.concurren ...