我在python中工作,目前有以下代码:
list = []
for a in range(100):
for b in range(100):
for c in range(100):
list.append(run(a,b,c))
Run Code Online (Sandbox Code Playgroud)
run(a,b,c)返回一个整数(例如,它可以将这三个数相乘).是否有更快的方法来循环这些数字或使用地图功能?
谢谢 :)
看一下itertools-module,特别是产品方法
示例用法:
for i in itertools.product(range(0,100), repeat=3):
#do stuff with i
list.append(run(i[0],i[1],i[2]))
Run Code Online (Sandbox Code Playgroud)
请注意,函数调用可以缩短为:
list.append(run(*i))
Run Code Online (Sandbox Code Playgroud)
在上面的例子中.有关解压缩参数列表的说明,请参阅docs.python.org.
例如,输出product(range(0,2), repeat=3))如下所示:
(0, 0, 0)
(0, 0, 1)
(0, 1, 0)
(0, 1, 1)
(1, 0, 0)
(1, 0, 1)
(1, 1, 0)
(1, 1, 1)
Run Code Online (Sandbox Code Playgroud)