如果a和b是两个列表,那么如何在不使用python中的嵌套for循环的情况下得到c?
a=[1,2,3]
b=[4,5,6]
c=[(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)]
假设我必须找到由这些对形成的所有第n个斐波纳契序列的总和作为前两个数,其中n是任何正数。 在这种情况下,63中的n = 3答案。
> 1 4 5 nth term in 5 1 5 6 nth term in 6 . . . 3 6 9 nth term in 9
> > Sum of all nth term in 63.
答案 0 :(得分:4)
只需使用product
包中的itertools
方法。
a=[1,2,3]
b=[4,5,6]
c = list(itertools.product(a,b))
print(c)
输出
[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]
答案 1 :(得分:1)
这是numpy
的替代方法:
import numpy as np
zip(np.repeat(a, 3), np.tile(b, 3))
# [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]