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

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

如何在Python中檢查2D數組中元素的類型

如何在Python中檢查2D數組中元素的類型

Cats萌萌 2021-04-09 14:11:27
我一直在嘗試制作井字游戲,到目前為止,我只創建了一個應該打印出棋盤的功能:    board = [[1,2,3],[4,5,6],[7,8,9]]    def drawboard(board):        for row in board:            for item in row:                if type(board[row][item]) == "int":                    print(str(board[row][item]))                    print("|")                else:                    print(board[row][item])                    print("|")            print("\n")            print("------")            print("\n")    drawboard(board)如您所見,函數的一部分是檢查列表內部列表中元素的類型,但這給了我一個錯誤:回溯(最近一次通話最后一次):文件“ / Users / Tony / Desktop / coding Things / tic TAC toe.py”,第22行,位于畫板(board)\ File“ / Users / Tony / Desktop / coding Things / tic TAC toe.py“,第12行,如果type(board [row] [item])==” list“,則在畫板中:TypeError:列表索引必須是整數或切片,而不是list
查看完整描述

2 回答

?
桃花長相依

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

這里有一些問題:


如果你迭代一個列表,你遍歷元素列表中,未對指標; 和

如果查詢type(..)你就不會得到一個字符串作為回報元素,但對類的引用。因此,您可以像這樣解決此問題:

    board = [[1,2,3],[4,5,6],[7,8,9]]


    def drawboard(board):

        for row in board:

            for item in row:

                if type(item) == int:

                    print(str(item))

                    print("|")

                else:

                    print(item)

                    print("|")

            print("\n")

            print("------")

            print("\n")


    drawboard(board)

由于非str項目通常str(..)在調用print時為-ed,因此我們甚至可以將ifandelse分支合并為:


def drawboard(board):

    for row in board:

        for item in row:

            print(item)

            print("|")

        print("\n")

        print("------")

        print("\n")


drawboard(board)

如果繼續進行這種類型檢查,通常檢查類型相等性也不是一個好主意。由于如果元素是子類的,則類型不再是int。然后,您最好使用isinstance(..)。


查看完整回答
反對 回復 2021-04-27
  • 2 回答
  • 0 關注
  • 221 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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