Sottrai un valore da ogni numero in un elenco in Python?


86

Ho una lista

 a = [49, 51, 53, 56]

Come faccio a sottrarre 13 da ogni valore intero nell'elenco?

Risposte:


150

Con una lista di comprensione :

a = [x - 13 for x in a]

2
Inserendo def minus13(a):la riga sopra e rientrando di un livello.
Ignacio Vazquez-Abrams

8
Perché a[:]a sinistra invece di limitarsi a riassegnare a? Non a[:]crea una copia dell'elenco?
doppia


4
Quello che dovrebbe essere fatto è che il valore dalla comprensione dell'elenco dovrebbe essere restituito dalla funzione e il chiamante dovrebbe decidere di sostituire la sequenza esistente, se appropriato.
Ignacio Vazquez-Abrams

1
@istruble: basta assegnare direttamente a un testamento altrettanto bene. Quindi a = [x - 13 for x in a]funzionerà altrettanto bene ed è meno confuso.
Lennart Regebro

71

Se lavori molto con i numeri, potresti dare un'occhiata a NumPy . Ti consente di eseguire tutti i tipi di operazione direttamente su array numerici. Per esempio:

>>> import numpy
>>> array = numpy.array([49, 51, 53, 56])
>>> array - 13
array([36, 38, 40, 43])

1
Ho eseguito un rapido test e restituisce un nuovo array lasciando intatto l'array originale.
Francois

10

Puoi usare la funzione map () :

a = list(map(lambda x: x - 13, a))

7
@ Frost.baka In Python 3, map restituisce l'oggetto mappa. In Python 2, restituisce list.
Sputnikus

5

Per chiarire una soluzione già pubblicata a causa di domande nei commenti

import numpy

array = numpy.array([49, 51, 53, 56])
array = array - 13

produrrà:

matrice ([36, 38, 40, 43])


3

Questo funzionerà:

for i in range(len(a)):
  a[i] -= 13

4
La soluzione per la comprensione delle liste è molto più pitonica. Potrebbero piacerti. docs.python.org/tutorial/…
istruble

Chi ha cancellato il mio commento? - Non vedo il punto nel contare la lunghezza di un file. Per fare un semplice calcolo.
jaycodez

2
Il conteggio è necessario, se l'algoritmo deve essere espresso in questo modo, affinché una variabile indice ( i) esegua l'iterazione di tutti i valori di indice possibili. Questa variabile di indice è necessaria per modificare ogni elemento nell'elenco.
Babbo Natale
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.