我如何在Python中声明一个数组?
我如何在Python中声明一个数组?
variable = []
现在,variable
引用了一个空列表*。
当然,这是一种赋值操作而非声明。在Python中,无法声明“此变量永远只能引用列表”,因为Python是动态类型语言。
*默认的Python内置类型称为list,而不是数组。它是一个有序的容器,可以容纳任意长度的异构对象集合(它们的类型不重要且可以自由混合)。这不应与array
模块混淆,后者提供了一种更接近于C语言array
类型的类型;其内容必须是同质的(全都是相同类型),但长度仍然是动态的。
variable = ["Hi", "Hello"];
这样) - Anderson Greenint myArray[row_size][col_size];
其中,row_size和col_size分别表示数组的行数和列数。 - Anderson Greenmy_2x2_list = [[a, b], [c, d]]
。根据你需要使用多维数组的情况,你还可以考虑使用numpy
库,它定义了多维、同质、未装箱数组的数组类型,在适用的情况下可以更加高效,因此在数值计算方面更为优选。 - sepp2k这在Python中是一个令人惊讶的复杂话题。
数组由类 list
表示(请参见参考资料,不要将它们与生成器混淆)。
查看使用示例:
# empty array
arr = []
# init with values (can contain mixed types)
arr = [1, "eels"]
# get item by index (can be negative to access end of array)
arr = [1, 2, 3, 4, 5, 6]
arr[0] # 1
arr[-1] # 6
# get length
length = len(arr)
# supports append and insert
arr.append(8)
arr.insert(6, 7)
在Python的底层中,list
实际上是一个包含对项的引用的实际数组的包装器。此外,基础数组还创建了一些额外的空间。
这样做的后果是:
arr[6653]
与 arr[0]
相同)append
操作是免费的,同时会占用一些额外的空间insert
操作很昂贵请查看这个操作复杂度的精彩表格。
[1, 2, 3, 4, 5, 6, 7, 8, 9][1:-2]
,结果将是 [2, 3, 4, 5, 6, 7]
。 - Antona == b[:2]
如果 b 数组的前两个元素等于 a 数组的值,则返回 True。 - Bruno L.实际上你不需要声明一个变量来创建Python中的数组:
from array import array
intarray = array('i')
更多信息请参考数组模块:http://docs.python.org/library/array.html
现在可能你不想要一个数组,而是一个列表,但其他人已经回答了这个问题。 :)
我想你的意思是需要一个已经填好了前30个单元格的列表。
f = []
for i in range(30):
f.append(0)
这个可以用在斐波那契数列的例子中。请参见Project Euler的问题2。
f = [0] * 30
。 - John Machin- arpa = range(10) print (a) range(0, 10)
这就是方法:
my_array = [1, 'rebecca', 'allard', 15]
进行计算时,可以像这样使用NumPy数组:
import numpy as np
a = np.ones((3,2)) # a 2D array with 3 rows, 2 columns, filled with ones
b = np.array([1,2,3]) # a 1D array initialised using a list [1,2,3]
c = np.linspace(2,3,100) # an array with 100 points beteen (and including) 2 and 3
print(a*1.5) # all elements of a times 1.5
print(a.T+b) # b added to the transpose of a
这些numpy数组可以保存到磁盘上并从磁盘上加载(甚至可以压缩),而且具有大量元素的复杂计算速度非常快,就像C语言一样。
在科学环境中广泛使用。更多信息请参见这里。
x=[[0] * 10] * 10
。 - Peter S Magnussonx = [[0]*5]*5; x[1][2] = 1; print(x)
- Johanimport copy; x = [copy.copy(x) for x in [[0]*5]*5]; x[0] is x[1]
。 - Peter S Magnusson有一些贡献建议Python中的数组由列表表示。这是不正确的。Python在标准库模块array
中有一个独立的实现array()
,因此混淆两者是不正确的。在Python中,列表就是列表,所以要注意使用术语。
list_01 = [4, 6.2, 7-2j, 'flo', 'cro']
list_01
Out[85]: [4, 6.2, (7-2j), 'flo', 'cro']
列表和 array.array()
之间有一个非常重要的区别。虽然这两个对象都是有序序列,但 array.array()
是有序的同质序列,而列表是不同质序列。
在Python中,你不需要声明任何东西,只需直接使用即可。我建议你从这样一个网站开始学习:http://diveintopython.net。