我遇到了一段 Python 代码,我可能想将它用于个人项目的 Java,但在理解这些操作时遇到了一些困难。该片段包含以下内容:
F={}
for stage in range(4):
if stage == 0:
F[stage]=[]
i=0
for j in range(i, len(words)+1):
F[stage].append([cost(i, j), 0])
这里,cost
是一个外部定义,它接受两个整数值并返回一个数学运算。
据我所知,F={}
初始化一个dict,它类似于Java HashMap,并[]
表示一个列表的初始化。
首先,我是否正确,这F[stage].append([cost(i, j), 0])
意味着
cost
取函数的整数值,- 创建一个包含两个值的列表和
- 将其作为单个容器附加到 F[stage] 列表的末尾?
其次,上面代码后面的这行部分让我很难过。
if F[stage-1][i][0] + cost(i, j) ...
我解释它的方式是
F[stage - 1]
检索该位置的列表[i]
访问子列表容器和[0]
检索子列表的第一个索引位置的值
我在正确的轨道上吗?