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

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

具有列表索引的 For 循環 蟒蛇

具有列表索引的 For 循環 蟒蛇

嚕嚕噠 2022-10-05 09:34:29
我有這個代碼,它應該將主列表中的每個項目打印在具有相同行號的新行上。在下面的代碼中,它工作正常:my_list = [["a", "b", "c"], ["d", "e", "f"], ["g", "h", "i"]]for item in my_list:    print(my_list.index(item)+1, item)然而,當我試圖暗示它成為一個“井字游戲”時,我使它不起作用。下面是概率代碼:def showGrid(y, x, "X"):    board[y][x] = "X"    print("  x x x")    for row in board:        print(board.index(row)+1, sub("[,']", "", str(row)[1:-1]))上述代碼的輸出與第一個示例不同,而是根據 和 值給出隨機輸出。例如,如果 和 都設置為 1,則輸出為:yxyx  x x x1 X - -2 - - -2 - - -當 和 都設置為 2 時,輸出為:xy  x x x1 - - -2 - X -1 - - -我想要的是1 2 3下降。如果有一個頁面涵蓋了這一點,請鏈接它。如果需要更多代碼,請說出來。否則提前致謝。:)
查看完整描述

2 回答

?
largeQ

TA貢獻2039條經驗 獲得超8個贊

您不想使用該方法,原因有2個:(1)繼續搜索當前列表索引效率低下,并且(2)如果列表中有重復的條目,它將始終返回第一個匹配元素的索引,這就是導致您所看到的問題的原因。index


試試這個:


def showGrid(y, x, "X"):

    board[y][x] = "X"

    print("  x x x")

    for ix, row in enumerate(board):

        print(ix+1, sub("[,']", "", str(row[1:-1]))

其工作方式是為每個列表元素生成一個元組。元組的第一個值是列表索引,元組的第二個值是列表元素。enumerate


查看完整回答
反對 回復 2022-10-05
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

board.index(row)返回找到的第一個索引。在這種情況下,第一個索引是因為它包含 。您可以通過循環遍歷一個范圍來避免使用該函數,例如:row0- - -list.index


def showGrid(y, x, "X"):

    board[y][x] = "X"

    print("  x x x")

    for i in range(len(board)):

        row = board[i]

        print(i+1, sub("[,']", "", str(row)[1:-1]))


查看完整回答
反對 回復 2022-10-05
  • 2 回答
  • 0 關注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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