python实现按照list中字典dict的某key合并去重并排序

python实现按照list中字典dict的某key合并去重并排序


list1 = [{
     "name": "zzz", "date": 202101, "age": 16, "gender": None},
         {
     "name": "zzz", "date": 202102, "age": 18, "gender": None}]
list2 = [{
     "name": "zzz", "date": 202101, "age": None, "gender": "man"},
         {
     "name": "zzz", "date": 202103, "age": None, "gender": "woman"},
         {
     "name": "zzz", "date": 202104, "age": None, "gender": "man"}]
# 列表合并
list3 = list1 + list2

# 以字典中的key:"date"去重,相同的去掉
list4 = []
values = []
for d in list3:
    # print(d)
    if d["date"] not in values:
        list4.append(d)
        values.append(d["date"])
# 将list2和list4中date相同的"gender"的值替换到list4中的"gender"
for i in list4:
    aaa = i["date"]
    for j in list2:
        bbb = j["date"]
        if aaa == bbb:
            i["gender"] = j["gender"]
# 按时间倒叙排序
list4 = sorted(list4, key=lambda keys: keys.get("date"), reverse=True)
print(list4)
# 结果
[{
     'name': 'zzz', 'date': 202104, 'age': None, 'gender': 'man'}, 
{
     'name': 'zzz', 'date': 202103, 'age': None, 'gender': 'woman'}, 
{
     'name': 'zzz', 'date': 202102, 'age': 18, 'gender': None}, 
{
     'name': 'zzz', 'date': 202101, 'age': 16, 'gender': 'man'}]

你可能感兴趣的:(python,python,列表,字典)