在python中初始化固定大小的数组

2024-04-23 15:33:19 发布

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

我想知道我如何初始化一个数组(或列表),还没有填充值,有一个定义的大小。

例如在C中:

int x[5]; /* declared without adding elements*/

在python中如何做到这一点?

谢谢。


Tags: 列表定义数组elementsintwithoutaddingdeclared
3条回答

为什么这些问题不能用显而易见的答案来回答呢?

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]]

相关问题 更多 >