2024-04-24 13:22:44 发布
网友
假设我有两个列表
list1 = [] list2 = []
还有一本字典
让list1,list2包含多个具有不同SNo和数据的字典实例。有些SNo可能是一样的。但数据不必如此。在
我想根据SNo合并(和排序)这两个列表,保持它们的结构,同时忽略具有相同SNo的列表。在
假设:如果字典列表具有相同的SNo,则忽略list2的条目。在
这是一个排序的内置函数
sorted(list1+list2, key=lambda x: x['SNo'])
根据lambda函数返回的值对每个项进行排序。对于每个项目,列表将根据中的“id”值进行排序每个人。你也可以按相反的顺序排序
注意:这可能不会忽略“SNo”的重复值。您可以在获得已排序的合并列表后将其删除
list1 = [{'SNo': 1, 'Data': "abc"} , {'SNo': 2, 'Data': "bcd"}, {'SNo': 2, 'Data': "def"}] list2 = [{'SNo': 3, 'Data': "abc"} , {'SNo': 4, 'Data': "bcd"}, {'SNo': 3, 'Data': "def"}] # to keep merged lists final_list = [] # this list will track if sno exit alreay sno_list = [] # take evry dict from combined list: for d in list1+list2: # extract sno sno = d['SNo'] # if sno not present in sno_list add that sno. if sno not in sno_list: # add evry dict , if its sno not present in the sno_list. final_list.append(d) sno_list.append(sno) print(final_list) #[{'SNo': 1, 'Data': 'abc'}, {'SNo': 2, 'Data': 'bcd'}, {'SNo': 3, 'Data': 'abc'}, {'SNo': 4, 'Data': 'bcd'}] #sorting list result = sorted(final_list,key=lambda d:d['SNo']) #[{'SNo': 1, 'Data': 'abc'}, {'SNo': 2, 'Data': 'bcd'}, {'SNo': 3, 'Data': 'abc'}, {'SNo': 4, 'Data': 'bcd'}] print(result)
这是一个排序的内置函数
根据lambda函数返回的值对每个项进行排序。对于每个项目,列表将根据中的“id”值进行排序每个人。你也可以按相反的顺序排序
^{pr2}$注意:这可能不会忽略“SNo”的重复值。您可以在获得已排序的合并列表后将其删除
相关问题 更多 >
编程相关推荐