我一直在我的代碼行停留了一段時間,而且我爲什麼會返回,因爲它一直在虧損。替換符合lambda條件的列表項目
guess = 'a'
word = ['a', 'b', 'c']
board = ['_', '_', '_']
board = list(map(lambda x: guess if word[board.index(x)] == guess else x, board))
print(board)
這將返回
['a', 'a', 'a']
而我的目標是
['a', '_', '_']
我以前的解決方案回報是通過列表循環與索引值的增加,並且分別根據猜測檢查每個詞條,並用相同的索引替換單板列表,但我覺得使用lambda
有更簡潔和pythonic的方式,我只是不能完全 得到它。
問題是你所有的'x's都是'_','board.index(x)'總是會返回'0',因爲這是你的主板中的第一個下劃線。你需要使用'enumerate(board)'來獨立遍歷值和索引 – Hamms
我還建議你使用列表理解而不是地圖;它更容易,更具可讀性,更適合您的使用案例 – Hamms