循环两个列表并在Django模型中追加项目

时间:2019-06-25 13:02:03

标签: python django django-models

我有两个列表A和B:

卡车对象:

[<truck_name: Tempo 407 1500>, <truck_name: Tempo 407 1500>]

master_values:

[{<Truckdb: Truckdb object (136)>: [<ItemBatch: Iphone>, <ItemBatch: Iphone>, <ItemBatch: Iphone>]}, {<Truckdb: Truckdb object (254)>: [<ItemBatch: Iphone>, <ItemBat
ch: Iphone>, <ItemBatch: Iphone>]}]

我遍历了两者,并试图将字典中的列表保存到模型中。

我要保存的列表是这样:

[<ItemBatch: Iphone>, <ItemBatch: Iphone>, <ItemBatch: Iphone>]

代码:

for i in range(len(truck_objects)):
    for j in range(len(master_values)):

        if i==j:
            DispatchPlan.objects.create(truck_name=truck_objects[i],items=master_values[something here])

我该怎么做?我用什么代替“这里的东西”,以便获得清单?

1 个答案:

答案 0 :(得分:2)

您根本不会这样做。拥有嵌套循环不仅效率极低,而且在Python中,几乎永远不要遍历range(len(something)),而总是直接遍历某些东西。

在这种情况下,您应该将列表压缩在一起并遍历结果:

for truck, master in zip(truck_objects, master_values):
    DispatchPlan.objects.create(truck_name=truck, items=master)