循环遍历python中的函数,为每组数据生成单独的列表

时间:2014-11-03 12:10:56

标签: python list loops

所以我有以下内容:

import PROGRAMS as prg

testlist = []
y=[1,2,3,4,5]
functions = [prg.test1, prg.test2, prg.test3]

for func in functions:
    for j in y:
        x = j*2
        z = func(x)
        testlist.append(z)

print testlist

#####PROGRAMS
def test1(x):
    x=x**2

    return x

def test2(x):
    x=x**3

    return x

def test3(x):
    x=x+10

    return x

现在说我想为每个函数生成一个单独的测试列表。我有一个列表,其中包含使用test1运行循环的所有数据,然后是来自test2等的数据的单独列表...

理想情况下,我不想定义3个单独的列表testlist1,testlist2等,而是有一个系统,根据列表'函数'的长度生成列表,并以某种方式实现我已有的。

提前谢谢你, 斯文。

1 个答案:

答案 0 :(得分:1)

为每个函数创建单独的值列表:

outlists = []

for func in functions:
    thislist = []
    for j in y:
        thislist.append(func(j*2))
    outlists.append(thislist)

outlists每个函数将包含一个列表。

您也可以使用嵌套列表推导来执行此操作:

outlists = [[func(j*2) for j in y] for func in functions]

但这超过了一些人的舒适度。