在单行中限制字典的大小

时间:2019-01-30 04:47:55

标签: python python-3.x

我有一个字典数组或一个字典本身,我想将其长度限制为1000。这是我到目前为止的内容:

MAX_ROWS = 1000
data[:MAX_ROWS] if isinstance(data, list) else ...

通常我会使用forloop来做到这一点,例如:

d = {}
for key in list(data.keys())[:MAX_ROWS]:
    d[key] = data[key]

在上面的单行代码中有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用字典理解:

d = {key: data[key] for key in list(data)[:MAX_ROWS]}

还要注意,list(data)将返回data的键。

这是另一个可能更有效的解决方案(未经测试):

from itertools import islice
d = {key: data[key] for key in islice(data, MAX_ROWS)}