【问题标题】:Python 2 dicts mergePython 2 字典合并
【发布时间】:2013-11-15 03:01:51
【问题描述】:

我正在创建一个 dict 来保存姓名和电话号码,并通过 pickle 存储到本地。 我现在面临的问题是:合并似乎无法正常工作。 , 任何的想法?谢谢。

import pickle
def add(name,contact):
    person= {};  
    person[name] = contact;
    print('new added: ',person);

    mycontactfile = 'contactlist.txt';
    f = open(mycontactfile,'rb');
    storedcontact = pickle.load(f);
    f.close();
    print('saved list:',storedcontact);

    storedcontact.update(person); # add a new contact to the list

    f = open(mycontactfile,'wb');
    pickle.dump(storedcontact,f);

    print('now full list is:' ,storedcontact);

【问题讨论】:

  • 只是一个建议,您不必像在 C 或 C++ 中那样使用; 来指示行尾
  • 我找到了原因,person和storedcontact的key相同,所以输出只显示一个。不过还是谢谢大家
  • 准确显示问题所在。我们无法猜测“无法正常工作”是什么意思。请注意,您可以更简单地使用storedcontact[name] = contact,而不是update(),并摆脱person 字典。
  • @thefourtheye 你能去聊天吗?我想问一些事情

标签: python dictionary pickle


【解决方案1】:

如果您有多个联系人要使用同一个名字,则需要 dictlist。您可以添加这样的联系人

if name in storedcontact:
    storedcontact.append(contact)
else:
    storedcontact[name] = contact

更好的是,停止使用泡菜并切换到sqlite

除此之外: 你也可以像这样一步初始化person(但你不再需要person了)

person = {name: contact}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 2012-07-17
    相关资源
    最近更新 更多