打破某些要素的循环

时间:2018-11-28 14:38:14

标签: python python-3.x

我有两个列表,每个列表都有[[product,rate,volume], [product,rate,volume], ...]。使用以下框架,一旦迭代了产品,是否有办法打破循环?因此,循环在遍历速率和音量之前停止了吗?

for currentproduct, rate, volume in volumedifferencearray:
    for product, rates, volumes in cleanlist:
        if currentproduct == product:
            volumediff = volumes - volume
            volumedifference.append([currentproduct, rates, volumediff])

1 个答案:

答案 0 :(得分:0)

假设您在两个列表(例如list1和list2)中都具有相同的产品,并且希望在第三个列表中(例如list3)具有体积差异:

list1.sort() # sorts on first column, i.e., product
list2.sort() # same for clean list

list3 = [ [x[0],y[1],y[2]-2[2]] for x,y in zip(list1,list2) ]

zip(list1, list2)帮助我们同时遍历两个列表。 xy是相应的元素list1list2。查看您问题中的代码,我的理解是您想要一个列表,其中第一列是产品,第二列是费率(来自清除列表),第三列是数量差异。

所以

  1. x[0]提供了产品。
  2. y[1]提供干净清单中的费率
  3. y[2]-x[2]给我们带来了数量上的差异

示例:

list1 = [[1, 2, 3], [2, 1, 0], [3, 0, 1]]
list2 = [[1, 4, 1], [2, 5, 0], [3, 6, 0]]

list3 = [[1, 4, 2], [2, 5, 0], [3, 6, 1]]

希望这能回答您的问题。