与map函数相比,Python中嵌套for循环

Cod*_*ahk 4 python loops

我在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)返回一个整数(例如,它可以将这三个数相乘).是否有更快的方法来循环这些数字或使用地图功能?

谢谢 :)

Fre*_*ihl 8

看一下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)

  • +1代码清晰代码.当然你可以把它写成一行但是当你解释这些东西时,这是人们想要看到的东西. (2认同)