首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中初始化固定大小的数组

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

Stack Overflow用户
提问于 2011-05-27 01:33:08
回答 10查看 733.2K关注 0票数 236

我想知道如何初始化一个数组(或列表),使其具有定义的大小。

例如,在C中:

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

我如何在Python中做到这一点?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-05-27 01:34:38

您可以使用:

>>> lst = [None] * 5
>>> lst
[None, None, None, None, None]
票数 319
EN

Stack Overflow用户

发布于 2013-12-16 22:37:24

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

a = numpy.empty(n, dtype=object)

这将创建一个长度为n的数组,该数组可以存储对象。它不能调整大小或追加。特别是,它不会通过填充长度来浪费空间。这是与Java的Python等价物

Object[] a = new Object[n];

如果您确实对性能和空间感兴趣,并且知道您的数组将只存储某些数值类型,那么您可以将dtype参数更改为其他值,如int。然后numpy会将这些元素直接打包到数组中,而不是让数组引用int对象。

票数 109
EN

Stack Overflow用户

发布于 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]]
票数 54
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6142689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档