0

基本的に、辞書のリストを受け取る関数を作成しました。たとえば、oldList = [{'a':2}, {'v':2}] および newList = [{'a':4},{'c ':4},{'e':5}]. 私の目的は、oldList の各辞書キーをチェックし、newList と同じ辞書キーがある場合は辞書を更新し、そうでない場合は oldList に追加することです。したがって、この場合、oldList のキー 'a' は値 4 で更新されます。また、newList のキー b と e が oldList に存在しないため、oldList に辞書が追加されます。したがって、[{'a': 4}, {'v': 2}, {'b': 4}, {'e': 5}] となります。これを行うためのより良い方法があるかどうか知りたいだけですか?

def sortList(oldList, newList):
    for new in newList: #{'a':4},{'c':4},{'e':5}
        isAdd = True 
        for old in oldList:#{'a':2}, {'v':2}             
            if new.keys()[0] == old.keys()[0]: #a == a
                isAdd = False
                old.update(new) # update dict
        if isAdd:
            oldList.append(new) #if value not in oldList append to it
    return oldList   

sortedDict = sortList([{'a':2}, {'v':2}],[{'a':4},{'b':4},{'e':5}])
print sortedDict

[{'a': 4}, {'v': 2}, {'b': 4}, {'e': 5}]
4

1 に答える 1

0

update() メソッドを使用できます。

oldList = dict(a=2,v=2)
newList = dict(a=4,c=4,e=5)
oldList.update(newList)     # Update the old list with new items in the new one
print oldList

出力:

{'a': 4, 'c': 4, 'e': 5, 'v': 2}
于 2013-03-29T22:01:23.460 に答える