python有趣函数_python中有趣的函数

filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:

>>> def f(x): return x % 2 != 0 and x % 3 != 0

>>> filter(f, range(2, 25))

[5, 7, 11, 13, 17, 19, 23]

>>> def f(x): return x != ‘a‘

>>> filter(f, "abcdef")

‘bcdef‘

map(function, sequence) :对sequence中的item依次执行function(item),见执行结果组成一个List返回:

>>> def cube(x): return x*x*x

>>> map(cube, range(1, 11))

[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

>>> def cube(x) : return x + x

...

>>> map(cube , "abcde")

[‘aa‘, ‘bb‘, ‘cc‘, ‘dd‘, ‘ee‘]

另外map也支持多个sequence,这就要求function也支持相应数量的参数输入:

>>> def add(x, y): return x+y

>>> map(add, range(8), range(8))

[0, 2, 4, 6, 8, 10, 12, 14]

reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和:

>>> def add(x,y): return x + y

>>> reduce(add, range(1, 11))

55 (注:1+2+3+4+5+6+7+8+9+10)

>>> reduce(add, range(1, 11), 20)

75 (注:1+2+3+4+5+6+7+8+9+10+20)

lambda:这是Python支持一种有趣的语法,它允许你快速定义单行的最小函数,类似与C语言中的宏,这些叫做lambda的函数,是从LISP借用来的,可以用在任何需要函数的地方:

>>> g = lambda x: x * 2

>>> g(3)

6

>>> (lambda x: x * 2)(3)

6

我们也可以把filter map reduce 和lambda结合起来用,函数就可以简单的写成一行。

例如

kmpathes = filter(lambda kmpath: kmpath,

map(lambda kmpath: string.strip(kmpath),

string.split(l, ‘:‘)))

看起来麻烦,其实就像用语言来描述问题一样,非常优雅。

对 l 中的所有元素以‘:‘做分割,得出一个列表。对这个列表的每一个元素做字符串strip,形成一个列表。对这个列表的每一个元素做直接返回操作(这个地方可以加上过滤条件限制),最终获得一个字符串被‘:‘分割的列表,列表中的每一个字符串都做了strip,并可以对特殊字符串过滤。

原文:http://www.cnblogs.com/huangxiaohen/p/3841653.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用客户端对象模型读取SharePoint列表数据

使用客户端对象模型读取SharePoint列表数据 客户端对象模型提供了强有力的方式,从远程客户端应用程序管理列表。1. 管理员身份打开VS,新建项目Windows窗体应用程序,命名ReadSPListData,确保选择.NET Framework 3.5。2. 添加控件。…

UE4 获得player id

获得Player ID 获得Player 位置 获得所有PlayerId

python学习---语法

python script常见格式: import sys #导入sys模块 from util import * #从util模块导入全部需要的变量,函数等 module[webview,content_shell,chrome] #列表数据结构 number(1,2,5,6,9) #元祖数据结构,不可改变 转载于:https://www.cnblogs.com/hanying/p/3792601.html

WebForm

封装太强 不容易进行单元测试 入门容易,使用难 转载于:https://www.cnblogs.com/xiaocandou/p/3793694.html

installshield 指定多个自定义路径和文件

1. 在Project Assistant的Application Files标签里面 在Script-defined Folders下面分别创建两个变量AAAA,BBBB。 分别在两个变量下面创建文件夹,A1,B1。 把需要安装在这两个文件夹下的文件分别添加进去。 2. 在Installation Designer标签下&…

java中domain什么意思_java解析URL中domain、端口和协议的两种方法

java解析URL中domain、端口和协议的两种方法Java代码 收藏代码Testpublic void parseDomain() throws IOException {for (int i 0; i < 10000000; i) {String urlAddress “http://www.roseindia.net/jsf/JSFLoginApplication.shtml”;URL url new URL(urlAddress);asser…

用鼠标选择模型表面两点并连线

1.两次鼠标点击分别用两个小球标识点击的位置 2. 鼠标右键实现两个位置之间的连线&#xff0c;并在线的中心位置设置textrender来显示线的长度 3. 设置textrender的朝向始终面向摄像机&#xff0c;并作插值平滑过度 4. 设置鼠标光标可显示&#xff0c;并且关卡可以响应鼠标事件…

java ranger rest_使用REST

使用Spring MVC开发Web应用程序的主要工作就是编写Controller逻辑。在Web应用中&#xff0c;除了需要使用MVC给用户显示页面外&#xff0c;还有一类API接口&#xff0c;我们称之为REST&#xff0c;通常输入输出都是JSON&#xff0c;便于第三方调用或者使用页面JavaScript与之交…

JDK安装与环境变量配置

本文介绍JDK的安装与环境变量配置。 工具/原料 JDK1.7.0 WIN7 方法/步骤 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk &#xff0c;第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。&#xff08;不能都安装在java文件夹的…

第一人称视角获得运动方向和视角的夹角

1. GetVelocity获得速度的vector 2. 使用RotationFromXVector和速度的vector得到世界坐标系里速度向量和世界坐标系X轴的夹角 虽然&#xff0c;RotationFromXVector返回的是一个rotation&#xff0c;但实际上只有Yaw值有效&#xff0c;因为Yaw(围绕Z轴的偏转角) 即为速度vecto…

用java程序for循环打印菱形_编写Java程序,应用for循环打印菱形、三角形

//输出三角形//右上for(int m 1; m < 10; m){for (int n 1; n < m; n){System.out.print("*");}System.out.println();}//右下(1)for(int m 1; m < 10; m){for (int n 10; n > m; n--){System.out.print("*");}System.out.println();}//右…

java中CardLayout的使用方法

import javax.swing.*;import java.awt.*; import java.awt.event.*;public class Card extends JFrame{/** JFrame的布局管理器是BorderLayout*/JPanel p;//位于中心区域的面板JButton b1,b2,b3,b4;//位于南部区域的四个按钮JLabel l1,l2,l3,l4;CardLayout c;//设置面板p的布局…

深入浅出UE4网络

UE4中的官方文档结构比较混乱&#xff0c;且有部分错误&#xff0c;不方便学习。笔者试图通过本文&#xff0c;整理出一篇关于UE4网络的文章&#xff0c;方便朋友们对UE4中的网络同步部分的认识&#xff0c;并有进一步理解。如有讲得不清楚明白的地方&#xff0c;还望批评指正。…

java载屁股针_以前常打的“屁股针”,为何现在很少见了?医生告诉你真实原因...

打屁股针应该是每个人的童年噩梦&#xff0c;还记得小时候到医院打针&#xff0c;医生的手还没碰到裤子&#xff0c;就感觉屁股发麻&#xff0c;忍不住拔腿就跑&#xff0c;最终还是被家长逮住&#xff0c;夹在大腿间固定住&#xff0c;防止逃跑&#xff0c;于是在哭喊声中迎来…

Windows中查找文件被何进程使用

这篇文章记录在对文件/文件夹删除、更改&#xff0c;移动时&#xff0c;Windows弹窗提示正在被某程序使用&#xff0c;但又不给出进程名的问题。 方法一、 在任务管理器中&#xff0c;切换到性能项&#xff0c;有一个资源管理器&#xff0c;如下&#xff1a; 进入资源管理器&am…

UE4 多人联机显示每个人的playid

目的&#xff1a;在多人联机模式下&#xff0c;在每个pawn的上方显示textrender&#xff0c;并且在textrender里显示每个pawn的playerid 下面以一个listen server和两个client的方式测试。 1. 创建一个带有textrender的actor&#xff0c;并且勾选其replicated开关 2. 在Chara…

java编写代码时易出错_写Java程序最容易犯的错误有哪些呢?

1。Duplicated Code代码重复几乎是最常见的异味了。他也是Refactoring的主要目标之一。代码重复往往来自于copy-and-paste的编程风格。与他相对应OAOO是一个好系统的重要标志。2。Long method它是传统结构化的“遗毒”。一个方法应当具有自我独立的意图&#xff0c;不要把几个意…

TSubclassOf

在蓝图或C层面调用SpawnActor创建一个actor对象&#xff0c;或者调用SpawnActorDeferred 延迟创建一个actor对象时&#xff0c;都需要一个class类型的参数。 如果在C层面&#xff0c;对象类型是我们自己在蓝图里做的蓝图类&#xff0c;那么C层面需要得到蓝图类型。做法如下&am…

java 二进制as_Java中的二进制文本

这是我的(在Java 8上可以正常工作)&#xff1a;String input "01110100"; // Binary input as StringStringBuilder sb new StringBuilder(); // Some place to store the charsArrays.stream( // Create a Streaminput.split("(?<\\G.{8})") // Spl…

套接字结构汇总

unix域套接字 sockaddr_un{ unsigned char  sun_len; sa_family_t  sun_family; char      sun_path[104]; } 转载于:https://www.cnblogs.com/wzf365/p/3819438.html