我怎样才能更快地完成这个功能?(我称之为很多时间,可能会提高速度)
def vectorr(I, J, K):
vect = []
for k in range(0, K):
for j in range(0, J):
for i in range(0, I):
vect.append([i, j, k])
return vect
Run Code Online (Sandbox Code Playgroud)
您可以尝试查看itertools.product
等效于生成器表达式中的嵌套for循环.例如,乘积(A,B)与A中的x的((x,y)相同,对于B中的y,返回相同的值).
嵌套循环像里程表一样循环,最右边的元素在每次迭代时前进.此模式创建了一个词典排序,以便在输入的可迭代内容进行排序时,产品元组按排序顺序发出.
调用范围(0,I)等时也不需要0 - 只使用范围(I)
所以在你的情况下它可以是:
import itertools
def vectorr(I, J, K):
return itertools.product(range(K), range(J), range(I))
Run Code Online (Sandbox Code Playgroud)