我想從我的字典中提取一個值> = 0.05的鍵。我的字典看起來像這樣
{'Bed_to_Toilet': 0.5645161290322581,
'Sleep': 0.016129032258064516,
'Morning_Meds': 0.03225806451612903,
'Watch_TV': 0.0,
'Kitchen_Activity': 0.04838709677419355,
'Chores': 0.0,
'Leave_Home': 0.03225806451612903,
'Read': 0.0,
'Guest_Bathroom': 0.08064516129032258,
'Master_Bathroom': 0.22580645161290322}
我想startActivity從這些鍵中隨機取一個名字,比如我第一次運行我的代碼是startActivity = Bed_to_Toilet,第二次是startActivity = Guest_Bathroom等等。我該怎么做?
我試著這樣做
def findFirstActivity(self, startActModel):
startActivity, freq = random.choice(list(startActModel.items()))
return startActivity
它作業得很好,我只需要一種添加條件的方法。
uj5u.com熱心網友回復:
1st,獲取符合您的條件的參考鍵串列:
candidate_list = [k for k,v in startActModel.items() if v >= 0.05]
然后您可以random.choice從該串列中:
mykey = random.choice(candidate_list)
此時,如果需要,您可以回傳并訪問選擇的值:
myval = startActModel[mykey]
uj5u.com熱心網友回復:
如果您想保持 API 不變。您可以傳遞給findFirstActivity()您的 dict 的過濾版本。感謝聽寫理解。
filtered_startActModel = {k:v for k, v in d.items() if v >= 0.05}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/528999.html
