例如,有沒有辦法改變
{'z': {'pl': 0.1001692265,
'sa': 0.0899505839},
'y': {'ap': 0.0734830126}}
進入
{'z': {'pl': 0.1001692265},
'y': {'ap': 0.0734830126}}
我正在尋找一種動態的解決方案,而不僅僅是在這種情況下基于鍵的值(即“sa”)
謝謝!
uj5u.com熱心網友回復:
要獲取第一個鍵值對,您可以使用 d 作為原始字典:
# Using suggestion by Ch3steR
{k:dict([next(iter(v.items()))]) for k, v in d.items()}
或者按照 MechanicPig 的建議使用 itertools.islice
{k:dict(itertools.islice(v.items(), 1)) for k, v in d.items()}
uj5u.com熱心網友回復:
Python3.8
在字典理解中,我們遍歷外部字典。我們可以將內部 dict 轉換為迭代器并用于next獲取第一個元素。我們可以使用海象運算子來存盤密鑰。
{k: {(k1:=next(iter(v))): v[k1]} for k, v in d.items()}
# {'z': {'pl': 0.1001692265}, 'y': {'ap': 0.0734830126}}
uj5u.com熱心網友回復:
使用itertools.islice可能是最優雅的方式:
>>> dct = {'z': {'pl': 0.1001692265, 'sa': 0.0899505839}, 'y': {'ap': 0.0734830126}}
>>> {k: dict(islice(v.items(), 1)) for k, v in dct.items()}
{'z': {'pl': 0.1001692265}, 'y': {'ap': 0.0734830126}}
uj5u.com熱心網友回復:
沒有字典的“第一個元素”這樣的東西。Python 字典是無序的。
如果你需要一個類似字典的結構來保持順序,那么OrderedDictPython 的集合庫的型別是一個選項。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/488136.html
上一篇:獲得資料幀中一個變數與所有其他變數之間的引導相關區間
下一篇:將串列中的多個專案移動到索引
