Answers:
您不能完全按照Python的要求进行操作(如果我没看错的话)。您需要为列表的每个元素(或您所说的数组)放入值。
但是,请尝试以下操作:
a = [0 for x in range(N)] # N = size of list you want
a[i] = 5 # as long as i < N, you're okay
对于其他类型的列表,也可以使用0以外的 None
值。
range(N)
如果Python <3.0,将已经产生一个列表。
xrange(N)
在Python 2.x中使用。我不确定它与不正确的边界如何。我更喜欢这样做,a = range(N)
因为每个元素都以合理的“默认”开始。我想这是一个见解的问题。
如果您(或该问题的其他搜索者)实际上对创建一个用整数填充的连续数组感兴趣,请考虑bytearray和memoryivew:
# cast() is available starting Python 3.3
size = 10**6
ints = memoryview(bytearray(size)).cast('i')
ints.contiguous, ints.itemsize, ints.shape
# (True, 4, (250000,))
ints[0]
# 0
ints[0] = 16
ints[0]
# 16
a = [obj] * N
是,同一obj出现在数组的每个元素中。如果它是可变obj,并且您修改了一项,则所有内容都会被更改。...但是,对于使用整数(或任何其他不可变类型)的示例,这没有什么区别。或者,如果仅分配给元素,也不是问题。(我提到它是因为我做得太频繁了:))