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