基本的に、辞書のリストを受け取る関数を作成しました。たとえば、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}]