这是关于科学计算的主题,最快的运行时间。 因此,我正在寻找一种更快的方式一次完成它,而不是通过另一个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]]
感谢所有帮助, 谢谢。
答案 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可能是更好的选择。