8
że masz następującą tablicę:
[1,2,3]
[4,5,6]
[7,8,9]
i chcesz wygenerować tej tablicy:
[1,5,9]
[1,6,8]
[4,2,9]
[4,8,3]
[7,2,6]
[7,5,3]
że masz następującą tablicę:
[1,2,3]
[4,5,6]
[7,8,9]
i chcesz wygenerować tej tablicy:
[1,5,9]
[1,6,8]
[4,2,9]
[4,8,3]
[7,2,6]
[7,5,3]
import itertools
A=[[1,2,3],
[4,5,6],
[7,8,9]]
for P in itertools.permutations(range(len(A))):
print [A[p][i] for i,p in enumerate(P)]
Drukuje:
[1, 5, 9]
[1, 8, 6]
[4, 2, 9]
[4, 8, 3]
[7, 2, 6]
[7, 5, 3]
Thanks , to w perfekcyjnie orked. Czy ktoś mógłby wyjaśnić, jak to działa? – cmgerber
Dla każdej kolumny i, wybiera wiersz p. Wszystkie są unikalne, ponieważ mają 0,1,2, ... Wszystkie p są wyjątkowe, ponieważ pochodzą z permutacji. itertools.permutations generuje wszystkie permutacje, więc iteruje przez wszystkie wybory. –