【发布时间】:2026-02-08 00:55:01
【问题描述】:
早上好,
我一直在互联网上搜索一种制作具有 2 个索引的列表或表格的方法。目前我已经为mass = list(range(0,value(m.n)+1)) 的1 个索引构建了一个代码,我用这个表达式mass[i] = value(m.mass[i]) 填充了这个列表。
但现在我必须引入另一个具有两个索引的变量,如下所示x[i,j] = value(m.x[i,j])。我试过x = []*value(m.ph)。但我想要的是得到类似x = [value(m.n)]*value(m.ph) 的东西,以表明我有一张这样的桌子。值 (m.n) 作为行和相位 (m.ph) 作为列。
这样做的目的是使用此函数plt.plot(time,x) 绘制这些变量的图形。 Idk 是否可以按照您的意愿调用这种列表、表格或矩阵,但是知道它会非常有用,因为我因此而陷入困境。
我的代码如下:
n = Param(initialize = 10, within = Integers)
N = Set(initialize = range(0,value(m.n)+1))
#What I got
x1 = [0,1,2,3,4,5,6,7,8,9,10]
x = list(range(0,value(m.n)+1))
for i in m.N:
x[i] = x1[i]
#What I try to do
ph = Param(initialize = 2, within = Integers)
Ph = Set(initialize = range(0,value(m.n)+1))
x2 = [[0,0],[1,1],[2,2],[3,3],[4,4]]
x = []*value(m.ph)
for i in m.N:
for j in m.Ph:
x[i,j] = x2[i,j]
错误如下:
File "C:/Users/Manuel/Desktop/StackExample.py", line 38, in <module>
x[i,j] = x2[i,j]
TypeError: list indices must be integers or slices, not tuple
非常感谢。
编辑:我想要的是在 Python 中创建一个包含两个索引的列表,使这些索引具有我需要的长度,这些长度由 m.n = Param(initialize = 32, within = Integers) 和 m.ph = Param(initialize = 2, within = Integers) 定义。
【问题讨论】:
-
提供输入,需要的输出。您的问题不清楚。
-
我已经更新了帖子,我不知道这是你要求的还是不是。提前感谢您的回复。
-
我认为@AniketBote 要求的是minimal reproducible example。换句话说,我们可以运行一些可以复制错误的代码。虽然 SO 上有一些聪明人,但我们中间的凡人需要运行一些代码来为您调试它。
-
我想我做了一个可运行的代码,你能试试看它是否显示了我想要的东西吗?
标签: python list matrix indexing pyomo