亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

for 在 python 到 javascript 語言中

for 在 python 到 javascript 語言中

達令說 2023-11-11 21:42:37
我在 python 中有這一行用于列表理解,但是我不太了解這種語言,我想將其轉換為 javascript。該行是:next = [ (i,j) for i,j in getValidMoves(grid,x,y,moves) ] num = [ (len(getValidMoves(grid,x+i,y+j,moves)),i,j) for i,j in next]getValidMoves是一個輔助函數,但我認為沒有必要理解其余的代碼
查看完整描述

2 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

讓我們從 python 中的 for 循環如何工作開始:


與許多語言相比,Python 實際上獲取您在 foo 循環語句中給出的任何可迭代對象中包含的每個元素,并且在不進行任何增量的情況下迭代該對象。所以在python中下面的代碼并不是無限循環。


for i in range(5):

    i=3

    print(i)

## prints 3, five times

所有這些都使 for 循環能夠迭代可迭代對象,如下所示


for i in ['hsusu', 4, ['usjs'], '21']:

    print(i)

## prints each one of the list elements

現在列表理解中的 for 循環與普通的 for 循環是一樣的。然而,列表理解是從可迭代創建列表的快速方法,因為它使用附加函數效率。在以下使用普通多行 for 循環的示例中,您使用追加 5 次來創建列表


next = [] # an empty list

for i, j in getValidMoves(grid,x,y,moves): # iterate through the iterable

    next.append((i,j)) # append the desired element

相反,列表理解不會調用追加函數(或者至少不會調用太多。我不確定),因此迭代完成得更快。


關于next = [ (i,j) for i,j in getValidMoves(grid,x,y,moves)] 這一行正在創建一個列表,因為方括號,名為next,因為變量名,包含元組,因為 (i,j) 的普通括號,函數輸出的內容,getValidMoves(grid,x,y,moves)其中應該是一個可迭代的(否則會出錯)?,F在,由于您在 for 循環中使用了兩個變量,因此可迭代對象必須類似于 [[1,2],[7,8]],其中可迭代對象的每個 elemen6 都是具有 2 個元素的可迭代對象。


我希望你現在明白了一切,如果沒有在評論中告訴我我應該更好地解釋什么。我很快就會為我所寫的所有內容添加參考文獻。


查看完整回答
反對 回復 2023-11-11
?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

3 件事可能會幫助你將其轉換為 Javascript:

  • 檢查文檔中的列表推導式。這很好地展示了如何將其轉換為常規for...in循環。

  • 編輯:在 JavaScript 中,Pythonfor...in循環的等效項是for...of循環。for...inJavaScript 中的循環做了一些不同的事情。(它是 JavaScript,所以for (var i = 0; ...; ++i) ...也可以使用。)

  • for i, j in ...在Python中稱為“拆包”;相當于JavaScript 中的“解構賦值”。


查看完整回答
反對 回復 2023-11-11
  • 2 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號