1

名前と電話番号を保持する辞書を作成し、ピクルでローカルに保存しています。現在私が直面している問題は、マージがうまく機能していないようです。、 何か案が?ありがとう。

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);
4

1 に答える 1

0

名前を付ける連絡先が複数ある場合は、 of が必要dictですlist。このように連絡先を追加します

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

いっそのこと、ピクルスの使用をやめて、sqliteに切り替える

余談ですがperson、このように 1 ステップで初期化することもできます (ただし、もう必要ありpersonません) 。

person = {name: contact}
于 2013-11-15T03:23:55.747 に答える