在Python的列表分配中从列表中删除重复元素

2024-09-29 19:32:14 发布

您现在位置:Python中文网/ 问答频道 /正文

在代码的这一部分中,我们希望从order dataframe和其他列表创建一个列表,其中的产品符合我们的约束条件。因为我们的代码中有太多的循环,所以有很多重复的产品。我们已经创建了两个def函数来消除这个问题,但它不能正常工作。我们应该怎么做才能使列表中的产品不再重复

这是我们代码的赋值部分

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)```

Tags: infalseforifintproductsrowstr
1条回答
网友
1楼 · 发布于 2024-09-29 19:32:14

给定一个对象列表,您可以通过比较它们的值来删除任何类似的对象

l = [
    {'a':1},
    {'b':2},
    {'a':1}
]

nl = []
for thing in l:
    if thing not in nl:
        nl.append(thing)

相关问题 更多 >

    热门问题