[英]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.