Solo quiero dividir cada elemento en una lista por un int.
myList = [10,20,30,40,50,60,70,80,90]
myInt = 10
newList = myList/myInt
Este es el error:
TypeError: unsupported operand type(s) for /: 'list' and 'int'
Entiendo por qué recibo este error. Pero estoy frustrado porque no puedo encontrar una solución.
También probé:
newList = [ a/b for a, b in (myList,myInt)]
Error:
ValueError: too many values to unpack
Resultado Esperado:
newList = [1,2,3,4,5,6,7,8,9]
EDITAR:
El siguiente código me da mi resultado esperado:
newList = []
for x in myList:
newList.append(x/myInt)
¿Pero hay una manera más fácil / rápida de hacer esto?
La forma en que lo intentó primero es directamente posible con numpy :
Si realiza tales operaciones con listas largas y especialmente en cualquier tipo de proyecto de computación científica, realmente recomendaría usar numpy.
fuente
numpy.array([10,20,30,40,50,60,70,80,90], dtype='f')
para loat. De lo contrario, dividir por 3 le daría solo 3 como resultado en lugar de 3.333 ..numpy.array([10.,20,30,40,50,60,70,80,90])
fuente
map()
devuelve un objeto de mapa, por lo que si desea una lista tiene que decir explícitamentelist()
. Así que en este caso:newList = list(map(lambda x: x/myInt, myList))
fuente
La versión abstracta puede ser:
fuente
fuente