Я просто хочу разделить каждый элемент в списке на 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]
РЕДАКТИРОВАТЬ:
Следующий код дает мне ожидаемый результат:
newList = []
for x in myList:
newList.append(x/myInt)
Но есть ли более простой / быстрый способ сделать это?
То, как вы попробовали сначала, на самом деле возможно с помощью numpy :
Если вы выполняете такие операции с длинными списками и особенно в каких-либо научных вычислительных проектах, я бы действительно советовал использовать numpy.
источник
numpy.array([10,20,30,40,50,60,70,80,90], dtype='f')
для loat. В противном случае деление на 3 даст вам всего 3 результата вместо 3.333 ..numpy.array([10.,20,30,40,50,60,70,80,90])
источник
map()
возвращает объект карты, поэтому, если вы хотите список, вы должны явно сказатьlist()
. Так что в этом случае:newList = list(map(lambda x: x/myInt, myList))
источник
Абстрактная версия может быть:
источник
источник