lettura facile

La funzione sum() in Python

La funzione built-in sum() di Python è utilizzata per sommare tutti gli elementi di un iterabile, come una lista o una tupla. La sintassi della funzione `sum()` è:

sum(iterable, start=0)

La funzione ha due parametri

  • iterable è un oggetto iterabile contenente elementi da sommare
  • start (opzionale) è un valore che viene aggiunto al risultato finale. Il valore predefinito è 0.

La funzione sum() calcola e restituisce la somma degli elementi presenti nell'oggetto iterabile.

Questa funzione è molto utile quando si lavora con grandi quantità di dati e si desidera ottenere la somma totale in modo efficiente. La funzione sum() può essere utilizzata solo con iterabili che contengono numeri (int, float). Non funziona con stringhe o altre strutture dati non numeriche, a meno che non si tratti di un iterabile di iterabili numerici.

Ecco un esempio pratico.

Crea una lista di valori numerici.

numbers = [1, 2, 3, 4, 5]

Poi calcola la somma della lista di numeri tramite la funzione sum()

sum(numbers)

In questo caso il risultato in output è 1+2+3+4+5=15

15

Se aggiungi un valore iniziale (start) nel secondo argomento della funzione, viene aggiunto automaticamente alla somma.

sum(numbers, 10)

In questo caso il risultato è 15+10=25

25

La funzione sum() ti permette di calcolare anche la somma di numeri in virgola mobile.

Ad esempio, crea una lista con alcun valori decimali.

floats = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]

Poi somma i valori con la funzione sum()

sum(floats)

Il risultato è

0.9999999999999999

Quando lavori con i numeri in virgola mobile, ci potrebbero essere problemi di precisione usando la funzione sum(). In questi casi, è preferibile utilizzare la funzione math.fsum() del modulo math che fornisce una somma più precisa per i numeri floating-point.

import math
math.fsum(floats)

In questo caso il risultato è più preciso

1.0

Puoi usare la funzione sum() anche per concatenare liste

sum([['b', 'c'], [4]], ['a'])

['a', 'b', 'c', 4]

o tuple

sum((('b', 'c'), (4,)), ('a',))

('a', 'b', 'c', 4)

Tuttavia, nel caso della concatenazione di liste o di tuple, è preferibile usare altre soluzioni e limitare l'utilizzo della funzione sum() soltanto alla somma di numeri.

Inoltre, sebbene sum() sia efficiente per molti casi d'uso, per grandi quantità di dati potrebbe essere opportuno considerare altre soluzioni come l'utilizzo di librerie specializzate come NumPy.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin