我有一个函数,其输入是一个向量,我想存储所有传递函数并具有特定输出(True或False)的向量。
我无法确定存储所有载体的位置。
编辑:我的意思是数组,对不起,我有点像菜鸟。
我的功能是
def true_set(u=[i,j,k,h,n])
然后它根据元素计算某些东西并返回true或false。 该函数是使用变量i,j,k,h,n的表达式。
哦,我正在使用嵌套for循环来运行它,因为我不知道更好的方法:
def generate_set(): for i in [0,1,100]:
for j in [0,1,100]:
for k in [0,1,100]:
for h in [1,10,10]:
for n in [0.5,10,10]:
u=[i,j,k,h,n]
if true_set(u)==True:
答案 0 :(得分:0)
你基本上做了两个常见的操作
Python拥有适用于这两方面的工具。
itertools
库有大量用于生成事物组合的实用程序。
i_list = [0, 1, 100]
j_list = [0, 1, 100]
h_list = [1, 10, 10]
n_list = [.5, 10, 10]
from itertools import product
vectors = [v for v in product(i_list, j_list, h_list, n_list)]
您还可以根据功能进行过滤
vectors = [v for v in product(i_list, j_list, h_list, n_list) if true_test(v)]
或更实用的方式
vectors = filter(true_test, product(i_list, j_list, h_list, n_list))
在这种情况下,true_test
看起来像
def true_test(vector):
if vector[0] > 1:
return True
return False
或者您正在使用的任何其他测试来决定是否包含给定的向量。