Python中的Python列表和迭代器

问题描述:

3.2如何用函数改变列表中的项目,并在改变之前返回函数的结果和项目本身? 10XPython中的Python列表和迭代器

def some(func,seq): 
    # What to do here? 
+0

你有一个列表。还有一个功能。你想做什么? – pajton 2011-04-03 18:15:08

喜欢的东西

def func(my_func,seq): 
    return seq, [my_func(n) for n in seq] 

def func(my_func,seq): 
    return [(my_func(n),n) for n in seq] 

...您的描述是不是在这方面很清楚。

这里使用的是列表理解。对seq中的每个元素调用一次my_func,并返回该元素的函数值。

+1

不是'map(lambda x:f(x),seq)'或'map(lambda x:(f(x),x),seq)'好多了? – khachik 2011-04-03 18:20:10

+1

编号列表综合是做这件事情的首选方式。 – pajton 2011-04-03 18:22:52

+0

@khachik:对于第一种情况,'map(f,seq)'比你的lambda好。但请注意'map'返回一个可迭代的,而不是一个列表。正如pajton提到的,列表理解优于lambda。 – kennytm 2011-04-03 18:29:11