HOWTO · Python
Combinazioni di una lista in Python
Questo tutorial mostra come trovare le combinazioni degli elementi di una lista in python
In questa pagina
Una combinazione è una tecnica che determina il numero di possibili disposizioni in una raccolta di elementi. In una combinazione di elementi, gli elementi vengono selezionati in un ordine arbitrario.
In questo tutorial, troveremo le combinazioni totali degli elementi di una lista in Python.
Usa la funzione itertools.combinations() per trovare le combinazioni di una lista in Python
La funzione combinations(list_name, x) del modulo itertools prende il nome della lista e un numero ‘x’ come parametri e restituisce una lista di tuple ciascuna di lunghezza ‘x’ contenente tutte le possibili combinazioni di un elemento in la lista con gli altri elementi.
Per esempio,
from itertools import combinations
A = [10, 5, "Hi"]
temp = combinations(A, 2)
for i in list(temp):
print(i)
Produzione:
(10, 5)
(10, 'Hi')
(5, 'Hi')
Un elenco ordinato produrrà le tuple di combinazione in ordine ordinato. Una combinazione di un elemento nella lista con se stesso non è possibile utilizzando la funzione combinations().
Usa la funzione itertools.combinations_with_replacement() per trovare le combinazioni di un elenco in Python
La funzione combinations_with_replacement(list_name, x) del modulo itertools prende il nome della lista e un numero ‘x’ come parametri e restituisce un elenco di tuple ciascuna di lunghezza ‘x’ contenente tutte le possibili combinazioni degli elementi della lista. Utilizzando questa funzione è possibile una combinazione di un elemento della lista con se stesso.
Per esempio,
from itertools import combinations_with_replacement
A = [1, 5, "Hi"]
temp = combinations_with_replacement(A, 2)
for i in list(temp):
print(i)
Produzione:
(1, 1)
(1, 5)
(1, 'Hi')
(5, 5)
(5, 'Hi')
('Hi', 'Hi')
Crea una funzione powerset() definita dall’utente per trovare le combinazioni di un elenco in Python
In matematica, un insieme di potenze di qualsiasi insieme è un insieme che contiene tutti i possibili sottoinsiemi di un dato insieme insieme a un insieme vuoto. L’insieme delle potenze dell’insieme S = {2, 5, 10} è {{}, {2}, {5}, {10}, {2, 5}, {2, 10}, {5, 10}, {2, 5, 10}}. La seguente funzione powerset() viene utilizzata per scorrere tutte le lunghezze ‘r’ della lista e stampare tutte le possibili combinazioni degli elementi della lista.
Per esempio,
from itertools import chain, combinations
def powerset(list_name):
s = list(list_name)
return chain.from_iterable(combinations(s, r) for r in range(len(s) + 1))
A = [60, 7, "Hi"]
for x in powerset(A):
print(x)
Produzione:
()
(1,)
(5,)
('Hi',)
(1, 5)
(1, 'Hi')
(5, 'Hi')
(1, 5, 'Hi')