我有一个列表,为了更容易理解它的结构,我将其写成这样:
mylist = [[["a","b","c","d"]...]...]
...
表示重复上一个列表(尽管其中的值可能会更改)
示例列表为:
mylist = [[["a","b","c","d"], ["e","f","g","h"]], [["i", "j", "k", "l"]], [["m","n","o","p"], ["q","r","s","t"]]]
我当前的方法是:
mylist2 = []
for a in mylist[0]:
for b in mylist[1]:
for c in mylist[2]:
mylist2.append([a,b,c])
但是这很长,特别是因为在我的实际代码中,它一直持续到for x in mylist[35]
我有更好的方式编写此代码吗?
答案 0 :(得分:3)
您的代码
%%timeit
mylist2 = []
for a in mylist[0]:
for b in mylist[1]:
for c in mylist[2]:
mylist2.append([a,b,c])
# 809 ns ± 18.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
使用itertools
import itertools
%%timeit
list(itertools.product(*mylist))
# 528 ns ± 11.4 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)