Как вы разделите каждый элемент в списке на int?

Я просто хочу разделить каждый элемент в списке на int.

myList = [10,20,30,40,50,60,70,80,90]
myInt = 10
newList = myList/myInt

Это ошибка:

TypeError: unsupported operand type(s) for /: 'list' and 'int'

Я понимаю, почему я получаю эту ошибку. Но я разочарован тем, что не могу найти решение.

Также попытался:

newList = [ a/b for a, b in (myList,myInt)]

Ошибка:

ValueError: too many values to unpack

Ожидаемый результат:

newList = [1,2,3,4,5,6,7,8,9]


EDIT:

Следующий код дает мне ожидаемый результат:

newList = []
for x in myList:
    newList.append(x/myInt)

Но есть ли более простой/быстрый способ сделать это?

Ответ 1

Идиоматическим способом было бы использовать понимание списка:

myList = [10,20,30,40,50,60,70,80,90]
myInt = 10
newList = [x / myInt for x in myList]

или, если вам нужно сохранить ссылку на исходный список:

myList[:] = [x / myInt for x in myList]

Ответ 2

То, как вы пытались вначале, действительно возможно с помощью numpy:

import numpy
myArray = numpy.array([10,20,30,40,50,60,70,80,90])
myInt = 10
newArray = myArray/myInt

Если вы выполняете такие операции с длинными списками и особенно в каком-либо научном вычислительном проекте, я бы действительно посоветовал использовать numpy.

Ответ 3

>>> myList = [10,20,30,40,50,60,70,80,90]
>>> myInt = 10
>>> newList = map(lambda x: x/myInt, myList)
>>> newList
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Ответ 4

myList = [10,20,30,40,50,60,70,80,90]
myInt = 10
newList = [i/myInt for i in myList]