[英]Return the next N items from a Python dictionary
這是一種常見的模式,我們希望返回足夠多的一些可迭代來滿足消費者,例如批處理或頁面顯示。 在這種情況下,我們希望它按鍵升序排列,作為獎勵,字典也是按鍵升序創建的,盡管可能存在間隙。 鍵是正整數。
例如
{1: "Genesis", 2: "Exodus", 4: "Leviticus", ... , 557: "Revelation"}
有一個現有問題涵蓋從 dict 返回前 N 個鍵:值對獲取前 N 個項目。 評論中有趣的一點是,由於 Python 3.6,字典按插入順序迭代。
問題:
- 編輯 -
澄清:例如,如果我們知道“Matthew”的 id 為 100,我們應該能夠調用:
answer = foo(100, 4)
並得到答案:
{100: "Matthew", 102: "Mark", 103: "Luke", 107: "John}
然而,當我們得到接下來的 4 個條目時,我們只知道第一個將是大於 107 的最小鍵,可能是 108,可能是 500。
由於字典可能很大,因此復制所有鍵或遍歷整個集合並不優雅。 (在我的用例中它可能很便宜,但我更喜歡更智能的解決方案。)
順序基於鍵而不是值。 因此,如果一個值被更新,順序(鍵)將被保留
您可以將字典的鍵作為列表獲取。 找到您感興趣的鍵的索引,然后根據該列表中的下 N 個鍵獲取值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.