2024-04-23 15:33:19 发布
网友
我想知道我如何初始化一个数组(或列表),还没有填充值,有一个定义的大小。
例如在C中:
int x[5]; /* declared without adding elements*/
在python中如何做到这一点?
谢谢。
为什么这些问题不能用显而易见的答案来回答呢?
a = numpy.empty(n, dtype=object)
这将创建一个长度为n的数组,该数组可以存储对象。无法调整大小或将其附加到。特别是,它不会通过填充长度来浪费空间。这是相当于Java的Python
Object[] a = new Object[n];
如果您对性能和空间非常感兴趣,并且知道数组只存储某些数值类型,那么您可以将dtype参数更改为其他值,如int。然后numpy将这些元素直接打包到数组中,而不是使数组引用int对象。
您可以使用:
>>> lst = [None] * 5 >>> lst [None, None, None, None, None]
执行以下操作:
>>> d = [ [ None for y in range( 2 ) ] for x in range( 2 ) ] >>> d [[None, None], [None, None]] >>> d[0][0] = 1 >>> d [[1, None], [None, None]]
其他解决方案将导致此类问题:
>>> d = [ [ None ] * 2 ] * 2 >>> d [[None, None], [None, None]] >>> d[0][0] = 1 >>> d [[1, None], [1, None]]
为什么这些问题不能用显而易见的答案来回答呢?
这将创建一个长度为n的数组,该数组可以存储对象。无法调整大小或将其附加到。特别是,它不会通过填充长度来浪费空间。这是相当于Java的Python
如果您对性能和空间非常感兴趣,并且知道数组只存储某些数值类型,那么您可以将dtype参数更改为其他值,如int。然后numpy将这些元素直接打包到数组中,而不是使数组引用int对象。
您可以使用:
执行以下操作:
其他解决方案将导致此类问题:
相关问题 更多 >
编程相关推荐