将列表中的元素与自然数相乘

2024-03-28 16:21:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表如下:

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型 非常感谢。你知道吗


Tags: 实例方法代码列表len定义np数字
3条回答

可以使用^{}^{}^{}

import operator
import itertools

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

这里有一个live example

也许最“原生”的方法是确保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])

我认为简单的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]

相关问题 更多 >