Come moltiplicare le liste in Python: 7 modi rapidi

Come moltiplicare le liste in Python: 7 modi rapidi

Moltiplicare le liste in Python è un'operazione comune quando si eseguono calcoli matematici o si risolvono problemi nella manipolazione dei dati. Esistono diversi modi per eseguire questa operazione, a seconda dei requisiti e delle librerie disponibili.

Per moltiplicare gli elenchi in Python, puoi utilizzare le funzioni for loop, list comprehension, zip e map o il modulo integrato functools. Puoi anche usare funzioni da una libreria Python esterna come NumPy.

Questo articolo ti mostrerà molti modi diversi per moltiplicare gli elenchi, ciascuno con un esempio di codice e risultati spiegati.

Iniziamo!

Sommario

2 tipi di moltiplicazione di elenchi numerici in Python

Prima di approfondire i metodi specifici, dovresti capire il tipo di moltiplicazione dell'elenco che ottengono.

Python ha diversi concetti che rientrano nel termine generico di moltiplicazione di liste. Ciò include la replica di elenchi o il raggiungimento del prodotto cartesiano degli elementi all'interno di un elenco.

Questo articolo si concentra invece su due tipi di moltiplicazione aritmetica degli elementi all'interno di un elenco:

  1. Moltiplicazione per valore

  2. Moltiplicazione per elementi

Diamo una rapida occhiata a questi due concetti.

1. Moltiplicazione per valore

Quando hai un elenco di numeri interi, potresti voler moltiplicare ogni elemento per un valore specifico. Ad esempio, hai una lista [1, 2, 3] e vuoi moltiplicare ogni elemento per il valore 3.

Potresti provare (erroneamente) a utilizzare l'operatore di moltiplicazione come in questo pezzo di codice:

list1 = [1, 2, 3]
result = list1 * 3

Potresti essere sorpreso dal fatto che il risultato sia [1, 2, 3, 1, 2, 3, 1, 2, 3]. Questa operazione è nota come replica dell'elenco .

2. Moltiplicazione di lista per elementi

Supponiamo di avere due liste: [1, 2, 3] e [4, 5, 6]

Vuoi moltiplicare gli elementi allo stesso indice all'interno dell'elenco per produrre [4, 10, 18] come risultato.

Se provi a moltiplicare due elenchi Python insieme usando l'operatore '*', otterrai un errore:

TypeError: impossibile moltiplicare la sequenza per non int di tipo 'elenco'

Questo perché l'operatore di moltiplicazione non è progettato per funzionare con le liste nel modo in cui funziona con numeri interi o float. Invece, la moltiplicazione degli elenchi richiede un'operazione nota come moltiplicazione per elemento.

La moltiplicazione per elemento accoppia gli elementi corrispondenti da due elenchi e li moltiplica insieme, formando un nuovo elenco.

Ora che capisci questi due concetti. lavoriamo attraverso una serie di tecniche per ottenere i risultati corretti.

Come utilizzare un ciclo For per più elementi di elenco in Python

Come moltiplicare le liste in Python: 7 modi rapidi

Supponiamo di voler moltiplicare gli elementi dell'elenco per un valore. Per questo approccio, puoi scorrere gli elementi con un ciclo for e moltiplicare ciascuno per un secondo valore.

Ecco un esempio con un elenco. La variabile risultato contiene l'elenco di output.

list1 = [1, 2, 3, 4]
factor = 3
result = []

for element in list1:
    result.append(element * factor)

In questo caso, l'elenco dei risultati sarà [3, 6, 9, 12].

Come utilizzare le comprensioni delle liste per la moltiplicazione

Le comprensioni di lista forniscono un modo conciso per eseguire il tipo numerico di moltiplicazioni di lista. Ottieni lo stesso risultato dell'utilizzo di un ciclo for , ma con una sintassi più compatta.

Ecco l'esempio precedente che utilizza la comprensione dell'elenco:

list1 = [1, 2, 3, 4]
factor = 3
result = [element * factor for element in list1]

Questo codice produce lo stesso output di prima: [3, 6, 9, 12].

Come utilizzare la funzione Zip per la moltiplicazione degli elementi

Come moltiplicare le liste in Python: 7 modi rapidi

Se hai due liste di numeri interi, potresti voler moltiplicare le liste per elemento. Ciò significa che moltiplichi il primo elemento nel primo elenco per il primo elemento nel secondo elenco e così via con gli elementi nella stessa posizione.

La funzione zip() può raggiungere questo obiettivo quando la combini con la comprensione dell'elenco.

La funzione combina gli elementi di due elenchi di input, consentendo di eseguirne il ciclo in parallelo. Ecco un esempio che utilizza elenchi della stessa dimensione:

list1 = [1, 2, 3, 4]
list2 = [2, 3, 4, 5]
result = [a * b for a, b in zip(list1, list2)]

In questo caso, la variabile risultato conterrà l'elenco risultante: [4, 10, 18].

Lavorare con tuple e costruttori

A volte, potresti dover lavorare con elenchi contenenti tuple anziché semplici numeri interi.

Per moltiplicare due liste di tuple , puoi utilizzare una combinazione di:

  • funzione zip()

  • costruttori di tuple

  • elencare le comprensioni

Ecco un esempio:

list1 = [(1, 2), (3, 4)]
list2 = [(5, 6), (7, 8)]

result = [tuple(a * b for a, b in zip(t1, t2)) for t1, t2 in zip(list1, list2)]

Questo è il risultato: [(5, 12), (21, 32)].

Come utilizzare una mappa e una funzione lambda in Python

Come moltiplicare le liste in Python: 7 modi rapidi

La funzione map in Python è un modo conveniente per applicare una funzione a ciascun elemento in un iterabile come un elenco.

Una funzione lambda in Python è una piccola funzione anonima. Ciò significa che è una funzione senza nome.

Per moltiplicare due liste in base agli elementi, puoi combinare le funzioni map e lambda:

list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list(map(lambda x, y: x * y, list1, list2))

La variabile risultato conterrà le liste moltiplicate: [4, 10, 18].

Come utilizzare il modulo operatore in Python

Il modulo operatore fornisce una vasta gamma di funzioni utili per lavorare con diverse strutture e tipi di dati.

La funzione operator.mul() può essere utilizzata per moltiplicare elenchi di numeri interi quando la si combina con la funzione map.

import operator

list1 = [1, 2, 3]
list2 = [4, 5, 6]

result = list(map(operator.mul, list1, list2))

In questo esempio, importi il ​​modulo operator e usi la funzione mul() insieme alla funzione map() integrata di Python per moltiplicare ogni elemento delle due liste.

La variabile risultato conterrà le liste moltiplicate: [4, 10, 18].

Libreria NumPy: le funzioni Array e Multiply

Come moltiplicare le liste in Python: 7 modi rapidi

La libreria NumPy è una potente libreria esterna in Python, ampiamente utilizzata per il calcolo numerico e per lavorare con gli array. Questa libreria è particolarmente efficiente quando si tratta di array di grandi dimensioni o array multidimensionali.

Per usare NumPy puoi installarlo usando pip:

pip install numpy

Per eseguire la moltiplicazione per elemento in due elenchi utilizzando NumPy, segui questi passaggi generali:

  1. Converti ogni elenco in un array NumPy usando numpy.array() .

  2. Esegui la moltiplicazione utilizzando la funzione di moltiplicazione NumPy.

  3. Facoltativamente, riconvertire il risultato in un elenco Python utilizzando il metodo tolist()

Ecco un esempio di codice:

import numpy as np

list1 = [1, 2, 3]
list2 = [4, 5, 6]
arr1 = np.array(list1)
arr2 = np.array(list2)

res_arr = np.multiply(arr1, arr2)
result = res_arr.tolist()

Ciò restituirà lo stesso risultato degli esempi precedenti: [4, 10, 18].

Come combinare Functools e NumPy in Python

La libreria functools contiene una funzione reduce che applica una funzione specifica cumulativamente agli elementi in un elenco, riducendo l'elenco a un singolo valore.

Per moltiplicare due liste usando la funzione reduce() , puoi combinarla con la funzione moltiplica dalla libreria NumPy.

Ecco un esempio:

from functools import reduce
import numpy as np

list1 = [1, 2, 3]
list2 = [4, 5, 6]

result = reduce(np.multiply, [list1, list2])

Questo codice importa le librerie necessarie e utilizza la funzione reduce() insieme a numpy.multiply() per eseguire la moltiplicazione per elemento delle due liste.

Lavorare con elenchi e altre strutture dati in Python

La maggior parte degli aspetti dell'analisi dei dati richiede l'utilizzo di elenchi, insiemi e altre strutture di dati. Ad esempio, metterai a frutto le tue conoscenze quando gestisci i dati mancanti con l'interpolazione.

Guarda questo video per alcune tecniche avanzate:

Pensieri finali

Hai imparato vari metodi per moltiplicare le liste aritmeticamente in Python. Alcuni utilizzano solo moduli e funzioni integrati, mentre altri si affidano a librerie di terze parti.

La capacità di eseguire la moltiplicazione per elemento apre le porte a una miriade di applicazioni. Dall'analisi dei dati all'apprendimento automatico, queste operazioni sono una parte essenziale di molti algoritmi e attività computazionali.

Sebbene questo articolo si concentri sulla moltiplicazione, i concetti che hai appreso si estendono anche ad altre operazioni. Anche l'addizione, la sottrazione e la divisione in base agli elementi possono essere eseguite più o meno allo stesso modo.

Ricorda, il modo migliore per consolidare questi concetti è applicarli, quindi vai avanti, avvia il tuo ambiente Python e inizia a sperimentare. Che tu stia automatizzando attività, manipolando dati o creando software complessi, queste tecniche torneranno sicuramente utili.

Buon pitone!


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere