我正在研究字典和串列。這是我的輸入資料。
{19: [[2, 1796]], 24: [[4, 1792]], 273: [[46, 1774]], 275: [[46, 1773]], 494: [[3, 1793]], 499: [[2, 1796]]}
我想計算兩個連續鍵值的差異。(首先我比較 19、24。然后我比較 273,275,依此類推)。如果差<= 5,那么我想得到最低鍵的鍵值對。
所以,我的輸出看起來像這樣
{19: [[2, 1796]], 273: [[46, 1774]], 494: [[3, 1793]]}
我嘗試使用 lambda 函式進行字典理解,但出現邏輯錯誤。
uj5u.com熱心網友回復:
您可以通過幾行代碼來實作這一點。創建一個新的空字典并將其填充到回圈中,同時檢查每次鍵之間的差異:
dic = {19: [[2, 1796]], 24: [[4, 1792]], 273: [[46, 1774]], 275: [[46, 1773]], 494: [[3, 1793]], 499: [[2, 1796]]}
new_dic = dict()
for k,v in dic.items():
if not(new_dic) or k-list(new_dic.keys())[-1] > 5:
new_dic[k] = v
print(new_dic)
輸出:
{19: [[2, 1796]], 273: [[46, 1774]], 494: [[3, 1793]]}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/336740.html
