python - 我可以在运行时初始化数组吗?
问题描述
我有一个由用户在主函数中传递的未知长度数组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 个元素。
这可能吗?
解决方案
您可以使用以下方法遍历数组(列表)的所有元素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]]
推荐阅读
- c# - 实体模型之间的关系问题
- c# - SQLite & LinQ Take 函数
- rest - 如何检索 VSTS 查询的结果
- javascript - 如何使用 JSON 仅显示 Linda 的详细信息
- javascript - 对 GraphQL 中嵌套类型的深度查询返回 NULL
- azure - 将角色名称添加到 Application Insights 遥测
- couchdb - 丰富 couchdb 用户上下文对象??(或其他方式存储用户数据服务器端)
- codeigniter - 如何修复使用 Codeigniter 和数据库作为会话驱动程序重新加载/刷新页面时自动生成的会话?
- flask - Kubernetes 上的 PGadmin4:使用 ELB 时会话无效
- node.js - 除非我事先移动鼠标,否则 Node js Selenium webdriver mouseMove() 处于空闲状态