在通过函数后,从列表中的对象创建嵌套列表

时间:2017-11-01 11:09:39

标签: python-3.x

这是关于科学计算的主题,最快的运行时间。 因此,我正在寻找一种更快的方式一次完成它,而不是通过另一个for循环传递新制作的列表。

我正在尝试从数据集中创建列表(矩阵)。 原始列表是1乘N并通过数学表达式传递每个元素,我需要制作3乘N矩阵。

到目前为止,我有:

year = [1980,  1981, 1982, 1983]
list2 = []

def testing(a):
    n = len(a)
    for i in range(n):
        list2.append(1)
        list2.append(year[i])
        list2.append(year[i]**2)

testing(year)
print(list2)

输出如下:

[1, 1980, 3920400, 1, 1981, 3924361, 1, 1982, 3928324, 1, 1983, 3932289]

期望的输出:

[[1, 1980, 3920400], [1, 1981, 3924361], [1, 1982, 3928324], [1, 1983, 3932289]]

感谢所有帮助, 谢谢。

1 个答案:

答案 0 :(得分:0)

使用列表理解:

def testing(a):
    return [[1, y, y**2] for y in a]

year = [1980,  1981, 1982, 1983]
list2 = testing(year)
print(list2)

虽然根据您的使用情况,使用元组或numpy可能是更好的选择。