Умножить элементы списка на натуральные числа - PullRequest
0 голосов
/ 29 июня 2018

У меня есть список, который выглядит так:

l=[0.1,0.5,2.1,3.3]

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

newlist=[1*0.1,2*0.5,3*2.1,4*3.3]

У меня есть следующий код:

l=[0.1,0.5,2.1,3.3]
s = np.arange(1,len(l)+1)
np.multiply(l,s)

Просто интересно, есть ли метод, встроенный или нет, в котором мне не нужно определять s.

T Спасибо.

Ответы [ 4 ]

0 голосов
/ 29 июня 2018

Пожалуй, самый «родной» способ сделать это, убедившись, что l - это массив numpy, тогда:

import numpy as np

l = np.array([0.1, 0.5, 2.1, 3.3])
print(l * range(1, len(l) + 1))
# array([ 0.1,  1. ,  6.3, 13.2])
0 голосов
/ 29 июня 2018

Вероятно, есть много способов сделать это:

[a*b for a,b in zip(l,range(1,1+len(l)))]
0 голосов
/ 29 июня 2018

Я думаю, что простое понимание списка Python может быть эффективным для вашей проблемы.

>>> l=[0.1,0.5,2.1,3.3]
>>> l
[0.1, 0.5, 2.1, 3.3]
>>> ll = [item * val for item, val in zip(l, range(1, len(l) + 1))]
>>> ll
[0.1, 1.0, 6.300000000000001, 13.2]
0 голосов
/ 29 июня 2018

Вы можете использовать map, itertools.count и operator.mul:

import operator
import itertools

l=[0.1,0.5,2.1,3.3]
res = list(map(operator.mul, l, itertools.count(1)))

Здесь у вас есть живой пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...