【问题标题】:Store or print a huge dictionary in python在 python 中存储或打印一个巨大的字典
【发布时间】:2017-10-24 03:16:03
【问题描述】:

我正在处理一个巨大的字典 FPKM,它有大约 20 个键,但每个键都有一个大约 100 万个值的列表。我尝试使用 print(FPKM) 打印所有内容,但它只打印密钥。会有什么问题? 我还想腌制这个 FPKM 对象,但结果发现只有密钥存储在腌制文件中。


亲爱的,我必须道歉,我的情况不属实。我做了

打印(排序(FPKM))

它只打印键 如果我这样做了

fpkm=排序(FPKM)

打印(fpkm)

成功了。 对于泡菜,情况类似,我使用“排序”而不是纯对象名称。

非常感谢您的所有回答。

【问题讨论】:

  • 你可以试试for k in FPKM: print FPKM[k]
  • 如果打印字典只打印键,它不是字典。
  • “我尝试使用 print(FPKM) 打印所有内容,但它只打印密钥。” -- 这不是我的情况。 print({'key1': 1, 'key2': 2}) 给我{'key1': 1, 'key2': 2}

标签: python dictionary pickle


【解决方案1】:

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

#! /usr/bin/env python3

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

【讨论】:

    【解决方案2】:

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

    我不这么认为。

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

    我也想pickle出这个FPKM对象,结果发现pickle文件中只存储了key。

    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'}
    

    【讨论】:

      【解决方案3】:

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

      假设这些是 FPKM 的内容:

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

      如果 FPKM 是一个字典,那么打印它应该像这样打印完整的字典。

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

      确保您没有改为这样做。

      for key in FPKM:
          print(key)
      

      那会打印出来:

      one
      two
      three
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-29
        • 1970-01-01
        • 2015-07-05
        • 2021-07-25
        • 1970-01-01
        • 2014-03-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多