在Python的列表分配中从列表中删除重复元素
在代码的这一部分中,我们希望从order dataframe和其他列表创建一个列表,其中的产品符合我们的约束条件。因为我们的代码中有太多的循环,所以有很多重复的产品。我们已经创建了两个def函数来消除这个问题,但它不能正常工作。我们应该怎么做才能使列表中的产品不再重复 这是我们代码的赋值部分在Python的列表分配中从列表中删除重复元素,python,list,duplicates,Python,List,Duplicates,在代码的这一部分中,我们希望从order dataframe和其他列表创建一个列表,其中的产品符合我们的约束条件。因为我们的代码中有太多的循环,所以有很多重复的产品。我们已经创建了两个def函数来消除这个问题,但它不能正常工作。我们应该怎么做才能使列表中的产品不再重复 这是我们代码的赋值部分 routeList= list() def routeListControl(assigned_products): deger = False for i in routeList:
routeList= list()
def routeListControl(assigned_products):
deger = False
for i in routeList:
if (i.getOrderNo() == assigned_products.getOrderNo()):
deger = True
if (i.getItemNo() != assigned_products.getItemNo()):
deger = False
if (deger == False):
routeList.append(assigned_products)
def notassigned_productsControl(notassigned_products)
deger = False
for i in notassigned_productsList:
if (i.getOrderNo() == notassigned_products.getOrderNo()):
deger = True
if (i.getItemNo() != notassigned_products.getItemNo()):
deger = False
if (deger == False):
notassigned_productsList.append(notassigned_products)
for df in dataframe_order_list:
for index, row in df.iterrows():
for j in orderWarehouseMatch:
if row['Item']== j.getItemNo():
for k,v in dictBalance.items():
if (str(k[10:]) == str(j.getWarehouse())[1:]):
if (int(row ['Qty/Ord']) <= int(dictBalance[str(j.getItemNo())+"/"+str(j.getWarehouse())])):
assigned_products= AssignedRoutes( row['No.Ord.'], str(j.getItemNo()) ,row ['Qty/Ord'], str(j.getWarehouse()) )
routeListControl(assigned_products)
elif (int(row ['Qty/Ord']) > int(dictBalance[str(j.getItemNo())+"/"+str(j.getWarehouse())])):
notassigned_products= NotAssignedProducts( row['No.Ord.'], str(j.getItemNo()) ,row ['Qty/Ord'], str(j.getWarehouse()) )
notassigned_productsControl(notassigned_products)```
给定一个对象列表,您可以通过比较它们的值来删除任何类似的对象
l = [
{'a':1},
{'b':2},
{'a':1}
]
nl = []
for thing in l:
if thing not in nl:
nl.append(thing)
我试图使用set函数,但它不起作用。