我想知道如何初始化一个数组(或列表),使其具有定义的大小。
例如,在C中:
int x[5]; /* declared without adding elements*/
我如何在Python中做到这一点?
发布于 2011-05-27 01:34:38
您可以使用:
>>> lst = [None] * 5
>>> lst
[None, None, None, None, None]
发布于 2013-12-16 22:37:24
为什么这些问题不能用显而易见的答案来回答呢?
a = numpy.empty(n, dtype=object)
这将创建一个长度为n的数组,该数组可以存储对象。它不能调整大小或追加。特别是,它不会通过填充长度来浪费空间。这是与Java的Python等价物
Object[] a = new Object[n];
如果您确实对性能和空间感兴趣,并且知道您的数组将只存储某些数值类型,那么您可以将dtype参数更改为其他值,如int。然后numpy会将这些元素直接打包到数组中,而不是让数组引用int对象。
发布于 2015-12-20 02:43:02
执行以下操作:
>>> 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]]
https://stackoverflow.com/questions/6142689
复制相似问题