Python-仅对字典对中的value(array)进行切片-有更好的方法吗?

问题描述 投票:-1回答:2

我有一个字典变量,它包含一个键及其对应的数组形式的值。

示例-

dict3

'2020-05-24T10:44:28.448188':[-1.0, 0.0, 0.0, 1.0, 0.0, 1.0],
'2020-05-24T10:44:28.511500':[-1.0, 0.0, 0.0, 1.0, 0.0, 1.0],
'2020-05-24T10:44:28.574870':[-1.0, 0.0, 0.0, 1.0, 0.0, 1.0],
'2020-05-24T10:44:28.976331':[-1.0, 0.0, 0.0, 1.0, 0.0, 1.0],
'2020-05-24T10:44:29.043868':[-1.0, 0.0, 0.0, 1.0, 0.0, 1.0],

现在,我想将对的值部分切成索引3。来自

[-1.0, 0.0, 0.0, 1.0, 0.0, 1.0]

[-1.0, 0.0, 0.0, 1.0]

我读过,不可能仅将字典中的值部分切片。因此,我将其转换为列表,并在那里进行切片。

st = [(k,v[:4]) for k, v in dict3.items()]

然后转换回字典。

dict3 = dict(st)

这是一个好方法吗?我将不得不将此逻辑扩展到具有110,000行的更大的数据集。

有更好的方法吗?

任何帮助将不胜感激。谢谢。

python python-3.x dictionary slice
2个回答
0
投票

Dictionnary comprehension将在一个操作中将其压缩:

st = {key: value[:4] for key, value in dict3.items()}

我相信这对于110,000行应该没问题。它将内存占用量增加一倍,直到旧字典被垃圾回收为止,但是110,000不会那么多。


0
投票

您可以将dictionary comprehensioneval一起使用

© www.soinside.com 2019 - 2024. All rights reserved.