我有两个列表,每个列表都有[[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])
答案 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)
帮助我们同时遍历两个列表。
x
和y
是相应的元素list1
和list2
。查看您问题中的代码,我的理解是您想要一个列表,其中第一列是产品,第二列是费率(来自清除列表),第三列是数量差异。
所以
x[0]
提供了产品。y[1]
提供干净清单中的费率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]]
希望这能回答您的问题。