所以我有以下内容:
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等,而是有一个系统,根据列表'函数'的长度生成列表,并以某种方式实现我已有的。
提前谢谢你, 斯文。
答案 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]
但这超过了一些人的舒适度。