与python中的数组混淆

2024-09-21 05:43:01 发布

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

这是在Python中声明和迭代数组的正确方法吗?在这个数组中,每个元素都乘以一个常量值?在

timeArray = array([0]*1000)

for x in timeArray:
    timeArray[x] = x * deltaTime
    print(timeArray)

Tags: 方法in声明元素for数组arrayprint
3条回答
timeArray = [i*deltaTime for i in range(1000)]

将构造一个包含所需内容的列表。索引到列表中需要O(1)时间,与数组相同。Python列表非常快,它们实际上是implemented as arrays。在

确实要在构造数组/列表时print它的内容吗?在

(旁白:如果您希望更快的数组是因为您正在进行数字运算,那么Numpy数组可能是更好的选择:

^{pr2}$

看起来你真正需要的是numpy数组。内置数组的行为更像列表。在

#!/usr/bin/python

from array import array

timeArray = array("f", [1]*1000)

deltaTime = 2

for i, x in enumerate(timeArray):
    timeArray[i] = timeArray[i] * deltaTime

print(timeArray)

# but numpy arrays behave more "naturally".

from numpy import array
timeArray = array([1]*1000, dtype="f")
print (timeArray * 2)

numpy数组将数组的所有元素乘以一个标量值。 另外,我不确定你原来的数组代码是否真的能用。另外,numpy数组的速度要快得多。在

这可能不那么令人困惑,而且可以随心所欲。在

timeArray = [0 for i in range(1000)]

for x in timeArray:
    timeArray[x] *= deltaTime
    print(timeArray)

相关问题 更多 >

    热门问题