我想声明一个数组,并且无论ListBox中存在的组名如何,都应删除ListBox中存在的所有项。任何人都可以帮我编写Python代码。我正在使用WINXP OS& Python 2.6。
答案 0 :(得分:71)
在Python中,list
是一个动态数组。你可以创建一个这样的:
lst = [] # Declares an empty list named lst
或者你可以填写项目:
lst = [1,2,3]
您可以使用“追加”添加项目:
lst.append('a')
您可以使用for
循环迭代列表中的元素:
for item in lst:
# Do something with item
或者,如果您想跟踪当前索引:
for idx, item in enumerate(lst):
# idx is the current idx, while item is lst[idx]
要删除元素,可以使用del命令或remove函数,如下所示:
del lst[0] # Deletes the first item
lst.remove(x) # Removes the first occurence of x in the list
但请注意,不能迭代列表并同时修改它;要做到这一点,你应该迭代一下列表(基本上是列表的副本)。如:
for item in lst[:]: # Notice the [:] which makes a slice
# Now we can modify lst, since we are iterating over a copy of it
答案 1 :(得分:5)
在python中,动态数组是一个'数组'来自阵列模块。例如。
from array import array
x = array('d') #'d' denotes an array of type double
x.append(1.1)
x.append(2.2)
x.pop() # returns 2.2
这个数据类型本质上是内置'列表之间的交叉。类型和numpy' ndarray'类型。像ndarray一样,数组中的元素是C类型,在初始化时指定。它们是不是指向python对象的指针;这可能有助于避免一些误用和语义错误,并且适度可以提高性能。
但是,这个数据类型与python列表基本上具有相同的方法,除了一些字符串&文件转换方法。它缺乏ndarray的所有额外数字功能。
有关详细信息,请参阅https://docs.python.org/2/library/array.html。
答案 2 :(得分:1)
这是我最近在different stack overflow post 上发现的有关多维数组的一种好方法,但是答案对于一维数组也很有效:
# Create an 8 x 5 matrix of 0's:
w, h = 8, 5;
MyMatrix = [ [0 for x in range( w )] for y in range( h ) ]
# Create an array of objects:
MyList = [ {} for x in range( n ) ]
我喜欢这一点,因为您可以在一行中动态指定内容和大小!
再上一次:
# Dynamic content initialization:
MyFunkyArray = [ x * a + b for x in range ( n ) ]
答案 3 :(得分:0)
您可以为 1 维动态声明一个 Numpy 数组,如下所示:
将 numpy 导入为 np
n = 2
new_table = np.empty(shape=[n,1])
new_table[0,0] = 2
new_table[1,0] = 3
print(new_table)
上面的例子假设我们知道我们需要有 1 列,但我们想动态分配行数(在这种情况下,所需的行数等于 2)
输出如下所示:
[[2.] [3.]]