我遇到了一段Python代碼,我可能想要適應Java的個人項目,但在理解操作時遇到一些困難。該片段包含以下:Python結構操作員澄清
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
是外部DEF,取入兩個整數值,並返回一個數學運算。
從我所知道的,F={}
初始化一個類似於Java HashMap的字典,[]
表示一個列表的初始化。
首先,我是糾正F[stage].append([cost(i, j), 0])
裝置
- 採取
cost
函數的整數值, - 創建具有兩個值,並
- 列表追加它作爲一個單一容器的端F [舞臺]名單?
其次,以上代碼的這一行部分讓我難堪。
if F[stage-1][i][0] + cost(i, j) ...
我解釋它的方式是
F[stage - 1]
在位置[i]
檢索列表訪問子表容器和[0]
在第一個索引位置檢索值子列表
我在正確的跟蹤?
請問您可以包含「代價」代碼嗎? – xxmbabanexx 2013-03-11 01:36:24
你顯示的Python代碼確實令人困惑。例如,它循環了四個階段,但對1-3沒有任何作用......我不確定你是否真的想複製它,除非你已經刪除了更多。 – Blckknght 2013-03-11 01:39:44
@Blckknght,有一些我沒有包含的代碼。我在這裏要做的是理解數據結構操作與Java相關的內容。實質上,這個問題更多地是Python代碼澄清的數據訪問和檢索問題。 – Jason 2013-03-11 01:53:36