Python 是否有简单地执行每个元素的方法?

Python 是否有简单地执行每个元素的方法?,python,python-3.x,Python,Python 3.x,正常方式: for x in myList: myFunc(x) 必须使用变量x 使用 事实上,你必须用它来做上述工作 list(map(myFunc,myList)) 那会建立一个列表,我不需要建立一个列表 也许有人会建议我这样做 def func(l): for x in l: .... 这是另一个话题 有这样的东西吗 every(func,myList) “正常方式”无疑是最好的方式,尽管它确实提供了消费配方,无论您出于何种原因可能需要它: impor

正常方式:

for x in myList:
    myFunc(x)
必须使用变量x

使用

事实上,你必须用它来做上述工作

list(map(myFunc,myList))
那会建立一个列表,我不需要建立一个列表

也许有人会建议我这样做

def func(l):
   for x in l:
        ....
这是另一个话题

有这样的东西吗

every(func,myList)

“正常方式”无疑是最好的方式,尽管它确实提供了消费配方,无论您出于何种原因可能需要它:

import collections
from itertools import islice

def consume(iterator, n):
    "Advance the iterator n-steps ahead. If n is none, consume entirely."
    # Use functions that consume iterators at C speed.
    if n is None:
        # feed the entire iterator into a zero-length deque
        collections.deque(iterator, maxlen=0)
    else:
        # advance to the empty slice starting at position n
        next(islice(iterator, n, n), None)
这可以像这样使用:

consume(imap(func, my_list), None) # On python 3 use map

此函数执行速度最快,因为它通过使用在C端运行的函数来避免python for循环开销。

如果您只想修改
myList
以包含
myFunc(x)
中所有x的
myList
,那么您可以尝试列表理解,它也需要一个变量,但不要让变量泄漏到理解范围之外:

myList = [myFunc(x) for x in myList]

希望对您有所帮助。

AFAIK标准库中没有“foreach”快捷方式,但这样的东西很容易实现:

def every(fun, iterable):
    for i in iterable:
        fun(i)

“那将构建一个列表,我不需要构建一个列表”你的问题是-我如何为某个列表中的每个元素执行一个函数?使用
map()。有时候,让事情尽可能短与其说是一个好习惯,不如说是一种困扰。简洁有利于可读性,但仅在一定程度上。自然语言有很多冗余是有原因的。这很好,但它就像使用佳能在纸上打孔一样-我想知道使用map()的OP有什么问题。@BurhanKhalid我回复了你上面的评论:)你可以使用
itertools.imap
(因为你已经在使用itertools)@DavidRobinson由于Python 3的不同,我不确定是否要这样做,但我将提供两种选择。
def every(fun, iterable):
    for i in iterable:
        fun(i)