Mam trzy listy:


[0, 1, 2, 3, 4]


[0, 1, 2]


[0, 1, 2, 3]


Chciałbym teraz wylistować wszystkie kombinacje elementów tych list, czyli:


4 + 2 + 3


4 + 2 + 2


4 + 2 + 1


4 + 2 + 0


4 + 1 + 3


itd..


Jak to rozgryźć przy pomocy pętli?

Komentarze (8)

Ok, znalazłem rozwiązanie oparte o bibliotekę:


import itertools

a = [[0, 1, 2, 3, 4], [0, 1, 2], [0, 1, 2, 3]]

print(list(itertools.product(*a)))


Innaczej musiałem pytanie do gugla sformuować.

@Dalmierz_Ploza A ja zastanawiałem się, jak to zrobić na piechotę, jak sobie poradzić z tą kombinatoryką. Dobrze, że już ktoś wcześniej to zrobił.

@SCC A no, ja też już w głowie układałem jak kilka indeksów ze sobą połączyć xD Ale jak zacząłem nad tym myśleć to zacząłem z guglem kombinować bardziej.

@SCC to jest tak proste, że mi by się nie chciało szukać w google, jeśli listy to A, B i C

for a in A:

for b in B:

for c in

print (a+ ' + '+b+ ' + '+c)<br />

Jeśli chcesz mieć funkcję która zadziała dla dowolnej ilości list to iterujesz po pierwszej liście i w każdej iteracji wołasz tą samą funkcję rekurencyjnie tylko już bez tej jednej listy po której iterujesz.

Cięzko mi tu napisać w komentarzu bo wcięcia zjada. I podmienia niektóre litery na uśmieszki.

Zaloguj się aby komentować