python Note higher-order functions
来源:互联网 发布:程序员怎么面试 编辑:程序博客网 时间:2024/06/08 04:47
def not_empty(s): return s and s.strip()list(filter(not_empty, ['A', '', 'B', None, 'C', ' ']))# 结果: ['A', 'B', 'C']
eval()
可以将string转成list,tuple,dict
a = "[1,2,3]"b = eval(a)print(type(b))
<class 'list'>
注意 repr() 输出对 Python比较友好,而str()的输出对用户比较友好
repr()绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象。
例子:
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
m = map(str,L)n = sorted(m,key=str.upper)for i in n: print(i)
注意
str.upper() # 把所有字符中的小写字母转换成大写字母str.lower() # 把所有字符中的大写字母转换成小写字母str.capitalize() # 把第一个字母转化为大写字母,其余小写str.title() # 把每个单词的第一个字母转化为大写,其余小写
或者 倒序:
def by_name(l): return l[0]res = sorted(L,key=by_name,reverse=True)for i in res: print(i)
闭包
用到函数外面定义的变量,定义这个函数的过程是将这个自由变量捕获而构成一个封闭的函数。
偏函数
创建偏函数时,实际上可以接收函数对象、*args和**kw这3个参数
*args 用来[解包list]将参数打包成tuple给函数体调用
**kw 打包关键字参数成dict给函数体调用
functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单
import functoolsint2 = functools.partial(int,base=2)print(int2('1111'))15
kw = { ‘base’: 2 }
int(‘1111’, **kw)
当传入:
max2 = functools.partial(max, 10)
实际上会把10作为*args的一部分自动加到左边,也就是:
max2(5, 6, 7)
相当于:
args = (10, 5, 6, 7)
max(*args)
结果为10。
列表生成器
除filter 还可以
L1 = ['Hello', 'World', 18, 'Apple', None]L2 = [m for m in L1 if isinstance(m,str)]
阅读全文
0 0
- python Note higher-order functions
- Higher order functions
- Javascript—Higher Order Functions
- tensorflow编程: Higher Order Functions
- python higher-order function demo
- 2.3.2 高阶函数(Higher-order functions)
- Sala-3 - 1 - Lecture 2.1 - Higher-Order Functions (10_18)
- Scala函数式程序设计原理 week2 Higher Order Functions
- JavaScript Functional Programming:高阶函数 Higher order functions
- The study of Higher-order function in Python(20170913)
- Python基础-高阶函数-Higher-order function
- Higher-Order Primitives (Direct3D 9)
- higher-order function first-order function
- Scala新手指南中文版 -第十篇 Staying DRY with higher-order functions(用高阶函数来消除重复代码)
- Higher-Order Perl: Transforming Programs with Programs
- Higher order SVD + Tensor Grassman manifold
- 高阶函数 Higher-order function
- React 高阶组件(Higher-Order Components)
- 股市术语
- Linux自动安装Perl模块
- java面试题
- menu bar (html+css)
- tensorflow图像数据预处理
- python Note higher-order functions
- 类的加载机制
- 基于diagonal生成器的cluster布局
- 【Construct 2】用Tilemap设计背景
- Java变量与变量的数据类型
- 【深度学习】入门理解ResNet和他的小姨子们(四)---WideResNet
- 简要谈谈javascript bind 方法
- ros_ekf
- 面试常见的各大排序算法