Python 将列表与对象进行比较

Python 将列表与对象进行比较,python,list,dictionary,Python,List,Dictionary,假设我有两个列表 list1 = [] list2 = [] 还有一本字典 dict = {'SNo': 1, 'Data': "Random Data"} 让list1、list2包含此字典的多个实例,这些实例具有不同的SNo和数据。有些SNo可能是相同的。但数据不一定是真实的 我想根据SNo合并(和排序)这两个列表,保持它们的结构,同时忽略具有相同SNo的列表 假设:如果字典列表具有相同的SNo,则忽略list2的条目。下面是排序后的内置函数 list1 = [{'SNo': 1, 'D

假设我有两个列表

list1 = []
list2 = []
还有一本字典

dict = {'SNo': 1, 'Data': "Random Data"}
让list1、list2包含此字典的多个实例,这些实例具有不同的SNo和数据。有些SNo可能是相同的。但数据不一定是真实的

我想根据SNo合并(和排序)这两个列表,保持它们的结构,同时忽略具有相同SNo的列表


假设:如果字典列表具有相同的SNo,则忽略list2的条目。

下面是排序后的内置函数

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)
    sorted(list1+list2, key=lambda x: x['SNo'])
根据lambda函数返回的值对每个项进行排序。现在,对于每个项目,列表将根据每个项目中的“id”值进行排序。您也可以按相反顺序进行排序

    sorted(list1+list2, key=lambda x: x['SNo'], reverse=True)

注意:这可能不会忽略“SNo”的重复值。您可以在获得排序的合并列表后删除它

    sorted(list1+list2, key=lambda x: x['SNo'])
根据lambda函数返回的值对每个项进行排序。现在,对于每个项目,列表将根据每个项目中的“id”值进行排序。您也可以按相反顺序进行排序

    sorted(list1+list2, key=lambda x: x['SNo'], reverse=True)

注意:这可能不会忽略“SNo”的重复值。您可以在获得排序后的合并列表后将其删除

什么是“本词典的实例”?什么是“本词典的实例”?效果很好。我不知道可以使用“+”运算符合并列表。也谢谢你,很好用。我不知道可以使用“+”运算符合并列表。也谢谢你。