Я хочу, чтобы произвести i,j
вектор, где каждый i
сочетается с каждым j
, простой вариант кода будет следующим образом:быстрый вещий способ производства I, J комбинации
n = 5
m = 3
for i in range(n):
for j in range(m):
print str(i) + ',' + str(j)
В РЕЗУЛЬТАТЕ:
0,0
0,1
0,2
1,0
1,1
1,2
2,0
2,1
2,2
3,0
3,1
3,2
4,0
4,1
4,2
Однако, если n
is 8e6
и m
is 200
(как в моем случае) эта петля вложенности становится очень медленной.
- Есть ли несколько способов для получения этой комбинации в C-подобной скорости?
- Есть ли другой способ?
Заранее спасибо.
Где вы хотите этот вывод будет перенаправлен? В файл, pipe, std? – Beri
'для i, j в itertools.product (xrange (n), xrange (m)):' более аккуратно и не позволяет построить весь список чисел. – jonrsharpe
Кроме того, проверьте [декартово произведение больших итераторов] (http://stackoverflow.com/questions/12093364/cartesian-product-of-large-iterators-itertools) – fredtantini