`
huangz
  • 浏览: 322327 次
  • 性别: Icon_minigender_1
  • 来自: 广东-清远
社区版块
存档分类
最新评论

Python中的foreach

阅读更多

Python有常用的map、reduce等函数,但是没有foreach,不过自己写一个也不难:

 

定义

 

# 需要Python3

def foreach(function, iterator):
    for item in iterator:
        function(item)
 

示例


输出所有迭代器中的元素:

 

>>> foreach(lambda value: print(value), range(5))
0
1
2
3
4
 


输出迭代器中的所有偶数:

 

>>> def echo_all_even(value):
...     if value % 2 == 0:
...             print(value)
... 
>>> foreach(echo_all_even, range(5))
0
2
4
 

注意上面的示例我们定义了一个echo_all_even的临时函数,因为Python只支持在lambda中写单个表达式。 :(


for、map和foreach的区别:

 

foreach的作用是在不改变迭代器中的值的前提下(单纯依靠函数的副作用),将函数应用到迭代器中的各个元素上,主要是用作输出和调试作用,它一般不返回值。


foreach是for之上的一个抽象,for可以只迭代迭代器中的一部分值,而且可能修改迭代器中的值,而foreach迭代迭代器中的所有值,foreach也不修改迭代器中的值。


map和foreach类似,都是将一个函数应用到迭代器的所有值中,但map返回一个新的列表作为结果,而foreach不返回值。

分享到:
评论
3 楼 107x 2017-01-11  
不错,可以自己写一个   谢谢!
foreach只调用,不返回结果,
还可以写成可变长参数
2 楼 huangz 2011-09-15  
不,我在写代码的时候也很喜欢用列表推导式,甚至有时候还冒着损失可读性的风险,将for循环改成列表推导式,因为我觉得这样看上去更niublity一些。。哈哈哈。

另外,foreach和列表推导式是不同的,如果你觉得它们两是一样,那你最好先查查wiki。
1 楼 est 2011-09-15  
莫非LZ没接触过更强大的list comprehension?

相关推荐

    foreach循环

    本篇文章将深入探讨`foreach`循环的工作原理、用法以及其在不同编程语言中的应用。 `foreach`循环,也称为“对于每个”循环,主要用于遍历数组或集合中的每一个元素。它简化了迭代过程,无需手动管理索引或计数器。...

    python实现C语言经典100例

    - **循环结构**:C语言中的for和while,在Python中也有对应的结构,且Python还提供了foreach(for-in)循环,可以遍历序列类型。 3. **函数** - **定义与调用**:C语言中函数需要声明和定义,Python则简单地通过...

    foreach用法.docx

    在Python、Java、C#等众多编程语言中,`foreach`循环都是标准库的一部分,被广泛用于处理数组、列表、字典等各种数据结构。它的存在使得开发者可以更加专注于业务逻辑,而不是纠结于底层的遍历细节。总的来说,熟练...

    Python-PlotNeuralNet用Latex代码绘制精美神经网络结构图

    在Python的机器学习领域,可视化是理解和解释模型的关键部分,特别是在神经网络中。"PlotNeuralNet"是一个独特的库,它允许用户使用LaTeX代码来创建高质量、详细的神经网络结构图。这个库由Haris Iqbal开发,其源...

    【JavaScript源代码】Nodejs 数组的队列以及forEach的应用详解.docx

    本文主要探讨了如何利用数组的特性,特别是`push`、`shift`方法实现队列的先进先出(FIFO)原则,以及`forEach`方法在数组操作中的应用和注意事项。 ### 数组与队列 在JavaScript中,数组天生支持队列的操作。`...

    Python-funcy炫酷又实用的函数式工具

    除了上述功能,funcy还提供了一些其他的高阶函数,如`each`(类似于forEach),`any`和`all`(用于检查条件是否对任何或所有元素成立),以及`first`和`last`(获取序列的第一个或最后一个元素)。 8. **函数装饰...

    Python核心编程(第二版)-习题答案

    在给出的部分内容中,涉及了多个章节的关键知识点,包括循环、条件语句、字符串操作、运算符使用、Python语法、标识符规则以及对象的概念。下面是对这些知识点的详细解析: ### 循环与数字 循环是编程中的基本结构...

    python+spark+大数据

    根据给定文件中的标题、描述、标签以及部分内容,我们可以从中提炼出与Python、Spark以及大数据处理相关的多个知识点。下面将详细展开这些知识点。 ### 1. Python与Spark的基础结合 Python 和 Spark 的结合使得大...

    C#调用python脚本的方法步骤(2种)

    本文将详细介绍C#调用Python脚本的两种方法,包括使用IronPython和使用Process类,分别适用于Python脚本中不包含第三方模块和包含第三方模块的情况。 使用IronPython调用Python脚本 IronPython是一个基于.NET ...

    Python中调用PowerShell、远程执行bat文件实例

    python调用本地powershell方法 1、现在准备一个简陋的powershell脚本,功能是测试一个IP列表哪些可以ping通: 代码如下: function test_ping($iplist) {  foreach ($myip in $iplist)  {  $strQuery = “select ...

    用python解决数据结构和算法_python编程_

    综上所述,“用python解决数据结构和算法”这个资源将全面覆盖Python编程中的数据结构和算法基础知识,通过实例讲解和练习,帮助读者深入理解和应用这些概念,从而提升编程能力。通过学习和实践,不仅可以提高代码...

    Python-Java-Stream:适用于Python的Java流

    安装完成后,你就可以在Python项目中导入并使用这个库了。 **使用Python-Java-Stream** Python-Java-Stream 提供了一些核心的类和方法,如 `Stream` 和一系列的静态方法,如 `stream()` 和 `of()`, 允许你创建和...

    从XPS文件中获取文字或图片

    本篇文章将详细探讨如何从XPS文件中提取文字和图片,以及相关的编程实现。 XPS文件结构: XPS文件是一个包含多个XML文档的压缩包,这些文档定义了页面布局、文本、图像和其他视觉元素。主要的XML文件包括package....

    python json文件转txt文件,批处理json文件转换成一个txt文件

    在Python中,`json`模块提供了处理JSON数据的功能,包括加载(loads)和保存(dumps)数据。批量转换JSON文件到TXT文件,我们可以编写一个脚本来遍历指定目录下的所有JSON文件,并将其内容转换为TXT格式。以下是一个...

    python编写的最短路径算法

    2. Python中实现Dijkstra算法的类设计:如上述代码所示,可以定义一个类`DijkstraExtendPath`,类中包含初始化方法`__init__`、初始化Dijkstra算法的`_init_dijkstra`方法和遍历图的`_foreach_dijkstra`方法。...

    循环的相互转换

    例如,在Python中,`foreach`循环如下所示: ```python for element in array: # 执行代码 ``` 在这个例子中,`array`是我们要遍历的序列,`element`则是每次迭代时当前元素的引用。 而`for`循环则更加通用,它...

    关于Python、php伪协议等的100道题

    Python100-master中的题目可能涵盖了基础语法、数据结构、函数、类、模块、异常处理、文件操作、网络编程等多个方面。通过解决这些问题,你可以深入理解Python的核心概念,提升编程能力。 1. Python基础:包括变量...

    Python-将NMap扫描转换为D3jsHTML表格

    在这个场景中,我们将探讨如何使用Python和D3.js库将NMap扫描结果转化为交互式的HTML表格。NMap是一个强大的网络扫描工具,用于探测网络上的主机和服务,而D3.js则是一个JavaScript库,用于创建动态、交互式的数据...

    多种语言的foreach用法示例

    这些示例展示了不同编程语言中使用foreach或类似的语法来迭代集合或数组中的元素。请注意,具体语法可能会因语言的不同而有所差异,但概念上的思路是相似的:对于集合中的每个元素,执行指定的操作。

    Python库 | frida-10.3.4-py3.6-linux-i686.egg

    在IT行业中,Python是一种广泛使用的高级编程语言,以其简洁、易读的语法和丰富的库支持而受到开发者们的青睐。这个压缩包文件"frida-10.3.4-py3.6-linux-i686.egg"是一个专门为Python 3.6编译的Linux i686平台的...

Global site tag (gtag.js) - Google Analytics