簡體   English   中英

Dict-如果每個鍵有多個值,則提取最后一個元素

[英]Dict - If more than one value per key, extract the last element

我有一個字典看起來像下面(盡管有150萬+對):

{'key1' : 10,
'key2' : 20,
'key3' : [30,40],
'key4' : 50,
'key5' : [60,70,80],
'key6' : 90}

我的鍵中有99%具有單個值,但是對於具有值數組的鍵。我想返回最后一個元素。

因此,我得出的結論將變得扁平而獨特。

 {'key1' : 10,
'key2' : 20,
'key3' : 40,
'key4' : 50,
'key5' : 80,
'key6' : 90}

從我的搜索中,我認為列表理解可能是最好的方法,但是我不確定該怎么做。 特別是因為並非每個鍵都包含相同的數據類型。

謝謝

一個簡單的dict理解即可:

d = {'key1': 10,
     'key2': 20,
     'key3': [30, 40],
     'key4': 50,
     'key5': [60, 70, 80],
     'key6': 90}

d = {k: v if not isinstance(v, list) else v[-1] for k, v in d.items()}
#        ^ if v is not a list taking v as it, otherwise taking the last element
print(d)

產出

{'key1': 10, 'key2': 20, 'key3': 40, 'key4': 50, 'key5': 80, 'key6': 90}

當然,逆運算也可以:

d = {k: v[-1] if isinstance(v, list) else v for k, v in d.items()}

暫無
暫無

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

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