如何將最后一個鍵值對移到第一位?
d = {1 : 'a', 2 : 'b', 3 : 'c'}
這是我想要得到的
d = {3 : 'c', 1 : 'a', 2 : 'b'}
我不知道如何實作它。
uj5u.com熱心網友回復:
一種方法是:
d = {1: "a", 2: "b", 3: "c"}
print(dict([d.popitem()]) | d)
輸出
{3: 'c', 1: 'a', 2: 'b'}
popitem()給出字典中最后一個鍵值對的元組. 我們將它放入一個串列中以創建一個可迭代的配對項,然后我們可以呼叫dict()它。
來自檔案:
...否則,位置引數必須是可迭代物件。可迭代物件中的每個專案本身必須是恰好具有兩個物件的可迭代物件。每個專案的第一個物件成為新字典中的鍵,第二個物件成為相應的值。
這適用于 3.9 及更高版本。從 3.7 版開始,保證保留字典的插入順序。從 3.9 版本開始,字典支持聯合|運算子。
uj5u.com熱心網友回復:
它僅在您的 Python 版本保持插入順序(Python 3.7 及更高版本)時才有效,但您可以嘗試:
d = {1 : 'a', 2 : 'b', 3 : 'c'}
# last key
last_k = next(reversed(d))
# put the last key-value pair before the rest
d = {last_k: d.pop(last_k), **d}
d
# {3: 'c', 1: 'a', 2: 'b'}
uj5u.com熱心網友回復:
對于系統方法,當dict“大”時,您可以使用包含舊鍵-新鍵串列的映射器,然后使用 dict-comprehension 獲取具有新排序的字典。
d = {1 : 'a', 2 : 'b', 3 : 'c'}
mapper = [(1, 3), (2, 1), (3, 2)]
new_d = {k_new: d[k_new] for _, k_new in mapper}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/488129.html
標籤:Python python-3.x 字典
