在python中存储或打印一个巨大的字典

时间:2017-10-24 03:16:03

标签: python dictionary pickle

我正在处理一个庞大的字典FPKM,它有~20个键,但每个键都有一个约100万个值的列表。我尝试使用print(FPKM)打印所有内容,但它只打印键。会出现什么问题? 我也想挑出这个FPKM对象,但事实证明只有密钥存储在pickle文件中。

亲爱的,我必须道歉,我的情况并非如此。我做了

打印(已排序(FPKM))

它只打印键 如果我做

FPKM =排序(FPKM)

print(fpkm)

它奏效了。 对于泡菜,这是类似的情况,我使用"排序"而不是纯粹的对象名称。

我非常感谢你的所有答案。

3 个答案:

答案 0 :(得分:0)

练习使用小字典,并验证大字典的行为类似:

#! /usr/bin/env python3

d = {'foo': [1, 2],
     'bar': [3, 4]}
print(type(d))
for k, v in d.items():
    print(k, v)

答案 1 :(得分:0)

  

我尝试使用print(FPKM)打印所有内容,但它只打印键。

我不这么认为。

a = {'hello': 'world'}
print(a) # The entire dictionary is printed {'hello': 'world'}
  

我也想挑出这个FPKM对象,但事实证明只有密钥存储在pickle文件中。

请参阅How can I use pickle to save a dict?

import pickle
a = {'hello': 'world'}
with open('filename.pickle', 'wb') as f:
    pickle.dump(a, f, protocol=pickle.HIGHEST_PROTOCOL)

with open('filename.pickle', 'rb') as f:
    b = pickle.load(f)

print(a == b) # True
print(b) # The original dictionary persists {'hello': 'world'}

答案 2 :(得分:0)

  

我尝试使用print(FPKM)打印所有内容,但它只打印键。

让我们说这些是FPKM的内容:

FPKM = {'one': 1,
        'two': 2,
        'three': 3
}

如果FPKM是dict,那么打印它应该打印完整的字典。

{'one': 1, 'two': 2, 'three': 3}

确保做这样的事情。

for key in FPKM:
    print(key)

那将打印出来:

one
two
three