展平嵌套与因变量
问题描述:
我想执行循环:展平嵌套与因变量
for i in list_a:
for j in list_b[i]:
print(i, j)
是否有可能使用itertools办呢? 我要寻找类似:
for i, j in itertools.product(list_a, list_b[i])
我想这样做的速度和可读性。
我想执行循环:展平嵌套与因变量
for i in list_a:
for j in list_b[i]:
print(i, j)
是否有可能使用itertools办呢? 我要寻找类似:
for i, j in itertools.product(list_a, list_b[i])
我想这样做的速度和可读性。
我不认为这是可能的,以任何方式平坦,提高速度或可读性。嵌套方法在我看来是做到这一点的最自然和最有效的方法。你可以把它写成一个列表理解或者生成器表达式,例如:'[call_some_function(i,j)in list_a for list_b [i]]',但是这仍然是一个嵌套for循环。 – jez
好的,但最快的是什么,写一个列表理解并用一个函数迭代它,或者创建一个产生一些东西并遍历它的函数? – Y0da
如果你想要一个列表,使用列表理解。如果你想要一个生成器,可以使用一个生成器表达式:'stuff =(call_some_function(i,j)for list_a for list_a for list_b [i])'然后你可以在不浪费内存的情况下迭代,对于东西:do_some_more_stuff(东西)' –