我正在開發一個播放“猜猜誰?”的程式。我希望計算機玩家決定要問的最佳問題。
我已經有代碼可以確定對于某個猜測將消除多少候選人的預期值,我在單獨的變數中計算并放入一個串列中:
# blackHairExpect = expected number of candidates remaining
# by asking about black hair; etc.
compareExpect = [blackHairExpect, blondeHairExpect, ...]
然后我嘗試獲得最低值:
minExpect = min(compareExpect)
然而,這只告訴我最好的猜測有多好;它沒有告訴我使用哪個猜測。我怎樣才能知道呢?例如,如果blackHairExpect是最低值,我怎么知道這個值是詢問黑發的結果?
我嘗試隔離最低值:
lowestExpect = [x for x in compareExpect if x == min(compareExpect)]
但這也不能解決問題。
uj5u.com熱心網友回復:
使用屬性名稱和值的元組串列。然后您可以最小化該值并回傳整個元組。
compareExpect = [('blackHair', blackHairExpect), ('blondeHair', blondHairExpect), ...]
minAttr, minValue = min(compareExpect, key=lambda e: e[1])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491508.html
上一篇:如何根據欄位中的冒號拆分物件陣列
