《Python数据科学指南》——1.11 将函数作为变量传递

1.11 将函数作为变量传递

Python支持函数式编程,除了命令范式。在前面的章节中,我们已经接触到了一些函数式编程的概念,不过没有明确地说明,在这节里,我们再来回头看看。在Python中,函数是一等公民,它们拥有属性,可以被引用,并且可以被分配给一个变量。

1.11.1 准备工作

这节里我们将研究函数作为变量传递的范例。

1.11.2 操作方法

我们先定义一个简单的函数,然后看看如何将它当作变量来使用。

# 1.定义一个简单的函数
def square_input(x):
     return x*x
# 2.把它分配给一个变量
square_me = square_input

# 3.最后调用这个变量
print square_me(5)

1.11.3 工作原理

我们在第1步中定义了一个简单的函数,给定一个输入值,这个函数返回输入值的平方值。我们将这个函数分配给了变量square_me。最终,我们可以通过输入一个合法的参数给变量square_me来调用这个函数。这演示了在Python里,我们可以将函数作为一个变量来对待,这是函数式编程的重要概念。

时间: 2024-10-07 11:24:32

《Python数据科学指南》——1.11 将函数作为变量传递的相关文章

《Python数据科学指南》——导读

前 言 如今,我们生活在一个万物互联的世界,每天都在产生海量数据,不可能依靠人力去分析产生的所有数据并做出决策.人类的决策越来越多地被计算机辅助决策所取代,这也得益于数据科学的发展.数据科学已经深入到我们互联世界中的每个角落,市场对那些十分了解数据科学算法并且有能力用这些算法进行编程的人才需求是不断增长的.数据科学是多领域交叉的,简单列举几个:数据挖掘.机器学习.统计学等.这对那些渴望成为数据科学家以及已经从事这一领域的人们在各方面都倍感压力.把算法当成黑盒子应用到决策系统里,可能会适得其反.面

《Python数据科学指南》——第1章 Python在数据科学中的应用 1.1 简介

第1章 Python在数据科学中的应用 在这一章里,我们将探讨以下主题. 使用字典对象 使用字典的字典 使用元组 使用集合 写一个列表 从另一个列表创建列表--列表推导 使用迭代器 生成一个迭代器和生成器 使用可迭代对象 将函数作为变量传递 在函数中嵌入函数 将函数作为参数传递 返回一个函数 使用装饰器改变函数行为 使用lambda创造匿名函数 使用映射函数 使用过滤器 使用zip和izip函数 从表格数据使用数组 对列进行预处理 列表排序 采用键排序 使用itertools 1.1 简介 Py

《Python数据科学指南》——1.19 使用zip和izip函数

1.19 使用zip和izip函数 zip函数将两个相同长度的集合合并成对,它是Python的内置函数. 1.19.1 准备工作 我们通过一个简单示例来演示zip函数. 1.19.2 操作方法 我们传递两个序列给zip函数,并打印输出. print zip(range(1,5),range(1,5)) 1.19.3 工作原理 本例中zip函数的两个参数是两个列表,这两个列表都是由从1到5的数值组成.range函数有3个参数:起始数值.结束数值和步长,默认步长为1.本例中,我们分别把1和5作为列表

《Python数据科学指南》——1.3 使用字典的字典

1.3 使用字典的字典 我们之前提到,为了完成目标,你得创造性地应用各类数据结构,这样才能发挥它们的威力.接下来,我们通过一个实例来帮助理解"字典的字典". 1.3.1 准备工作 请看表1-1. 第1列中列出了3个用户,其他列都是电影,单元格里是每个用户给电影的评分.我们要把这些数据放到内存中,这样大型程序的其他部分也能方便地访问,此时我们将使用"字典的字典". 1.3.2 操作方法 我们通过匿名函数来创建一个user_movie_rating的字典对象,以此展示&

《Python数据科学指南》——1.2 使用字典对象

1.2 使用字典对象 在Python语言中,容器是一种对象,它能够容纳任意数量.任意类型的对象.它可以对子对象进行操作,还可以迭代操作.字典.元组.列表还有集合都是容器对象.在collections模块中,Python提供了更多的容器类型.在这一节中,我们先来仔细了解字典. 1.2.1 准备工作 我们先通过一个Python的脚本示例来理解字典是如何操作的,这段脚本用来统计词频,也就是每个词在给定的文本中出现的次数. 1.2.2 操作方法 下面的示例演示了在Python中对字典对象如何操作.通过对

《Python数据科学指南》——1.20 从表格数据使用数组

1.20 从表格数据使用数组 数据科学的应用程序要成功解决一个问题,必须先找到适当的处理数据的方法.例如在机器学习中对数据进行预测或分类,要么采用有监督的方法,要么采用无监督的方法.而在此之前,传输数据,把数据清洗到匹配算法,可能已经花费了很长的时间. 通常,有很多种方法对数据进行整理使之适合数据科学程序进行处理,数据科学程序开发者首先面对的挑战是如何访问数据,并用Python的数据结构让这些数据持续可用.掌握使用Python访问数据的诀窍是非常有用的,能让你避过纷扰,直接面对问题的核心内容.

《Python数据科学指南》——1.4 使用元组

1.4 使用元组 在Python中,元组是一种顺序型的容器对象.元组是不可变的,元组中的元素由逗号分隔开,可以对不同类别构成的对象进行排序,不允许插入操作,支持以下操作. in和not in. 比较.串联.切片和索引.min ()和max (). 1.4.1 准备工作 我们讲解字典的时候,描述了完整的功能,对于元组,我们通过一些小段的代码来聚焦于元组的创建与维护操作. 1.4.2 操作方法 先让我们看看一些元组创建和维护的示例代码. # 1.创建一个元组 a_tuple = (1,2,'a')

《Python数据科学指南》——1.8 使用迭代器

1.8 使用迭代器 毫无疑问,对于数据科学的程序而言,数据是极其重要的输入.数据的大小是可变的,有些能装载到内存中,有些则不能.而记录访问架构也是随一种数据格式到另一种而变化.有趣的是,不同的算法处理数据时,需要的是可变长度的组块.例如,假如你在写一个随机梯度下降的算法,你希望在每个时间片传送5000条记录的数据块,如果你对如何访问数据.理解数据格式.依次传送数据.给调用者需要的数据等流程有着清晰的概念,那你才能成功.这样能让你写出清晰的代码.大多数时候,最有趣的部分是我们如何处理数据,而不是我

《Python数据科学指南》——1.10 使用可迭代对象

1.10 使用可迭代对象 可迭代对象和生成器十分相似,但是有一个重要的区别:我们可以重复地访问一个可迭代对象,即使我们已经访问完了序列中的所有元素,我们还可以从头重新访问它,这和生成器是完全不同的. 如果不保持任何状态,它们就是基于对象的生成器.所有带有iter方法的类,在用来产生数据时,都可以被作为无状态对象生成器来使用. 1.10.1 准备工作 我们通过一个简单的示例来理解可迭代对象.如果理解了之前介绍的生成器和迭代器,你也能很容易地理解这个概念. 1.10.2 操作方法 我们来创建一个简单