簡體   English   中英

計算字典中連續鍵元素的差異后如何獲得鍵值對

[英]How to get key-value pair after computing the difference of consecutive key elements in dictionary

我正在研究字典和列表。 這是我的輸入數據。

{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 函數進行字典理解,但出現邏輯錯誤。

您可以通過幾行代碼來實現這一點。 創建一個新的空字典並將其填充到循環中,同時檢查每次鍵之間的差異:

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]]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM