我有兩個列表 - 列表1有零件號(不唯一),訂單號(空白),工號(空白),顏色和數量字段。清單2包含零件號(唯一),訂單號和工作號碼字段。我需要填寫訂單號和作業號列表1的基礎上,從清單2中的信息(通過匹配部件編號)Python - 列表比較/匹配
表1(mainlist)
零件編號(BM001) 訂單號(空), 招聘#(空), 顏色(黑色), 數量(2)
零件編號(BM001), 訂單號(空), 招聘#(空), 顏色(紅色), 數量(4)
零件編號(BM002), 訂單號(空), 招聘#(空), 顏色(綠色), 數量(5)
表2(ValuesList中)
零件編號(BM001), 訂單號(26534), 招聘#(75)
零件編號(BM002), 訂單號(26535), 招聘#(76)
預期的效果(我只需要清單1中,充滿爲了#和就業#)
零件編號(BM001), 訂單號(26534), 招聘#(75), 顏色(黑), 數量(2)
零件編號(BM001),訂單號(26534),作業#(75),顏色(紅色),數量(4)
零件編號(BM002),令#(26535),作業#(76),顏色(綠色),數量(5)
這是我迄今爲止的代碼(見下文),但它沒有正確匹配數據。我假設有一個更簡單(也更有效)的方式來做到這一點,但在這一點上,我被卡住了。
注意:這是在Dynamo/Revit中,它利用Python訪問Revit API。
預先感謝您。
dataEnteringNode = IN
mainlist=IN[0]
valueslist=IN[1]
outlist=[]
for i in mainlist:
#Part #
item0=i[0]
#Order #
item1=""
#Job #
item2=""
#Color
item3=i[3]
#QTY.
item4=i[4]
for j in valueslist:
#Job # and Task #
if (i[0] == j[0]):
item1=j[1]
item2=j[2]
#Write Data
outlist.append(item0)
outlist.append(item1)
outlist.append(item2)
outlist.append(item3)
outlist.append(item4)
#Assign your output to the OUT variable.
OUT = outlist
恰恰是在你的名單是什麼?列表在Python中沒有「字段」,所以請具體說明。 –
爲什麼使用'#Part ... item0 = i [0]'而不是命名變量'part'並刪除註釋? – MSeifert