首页 > 解决方案 > 我可以在运行时初始化数组吗?

问题描述

我有一个由用户在主函数中传递的未知长度数组a = [a1, a2, ... an],即a = [3,3,4,1]or a = [1,1,13,4,5]

在我的程序中,由于我不知道数组的长度,如何从这些变量中创建数组a

例如,假设用户通过a = [3,3,4,1],我需要创建 4 个数组,a1包含 3 个元素,a2包含 3 个元素,a3包含 4 个元素,a4包含 1 个元素。

这可能吗?

标签: python

解决方案


您可以使用以下方法遍历数组(列表)的所有元素for ... in

for var in a:
    # do something with var

列表不需要预先分配(它们会在你添加东西时动态调整大小),但是如果你确实想创建一个特定长度的列表,一个简单的方法是乘法运算符:

a1 = [0] * 3  # creates [0, 0, 0]

请注意,如果您有动态数量的值(无论值是列表还是其他),您可能不需要静态变量名称,例如a1,a2等。相反,您可能需要列表列表:

arrays = []  # empty list
for var in a:
    arrays.append([0] * var)  # adds a list of length var to arrays

如果您开始,a = [3, 3, 4, 1]那么arrays现在将是:

[[0, 0, 0], [0, 0, 0], [0, 0, 0, 0], [0]]

推荐阅读