我在两个列表中搜索matchin条目,当我找到匹配项时,我想从一个列表中添加一些信息,从另一个列表中添加一些信息到新列表。
## Product list
ta_prod = []
prod = open("products.txt", "r")
for line2 in prod:
row2 = line2.split(",")
ta_prod.append(row2[4])
## Producs Ordered
supne = []
ta_prodord = []
prodord = open("products_ordered.txt", "r")
for line in prodord:
row = line.split(",")
prodordnavn = re.sub('"',"",row[1])
ta_prodord.append(prodordnavn)
if prodordnavn in ta_prod:
supne.append([row[0],row[1],row[2],row2[11]])
我的问题在于" row2 [11]"论点。它每次都提供相同的条目,而不是与匹配链接的条目。
要清楚,我写的地方" row2 [11]"我想将条目附加到第11列(从0开始计数),该条目与上面的匹配位于同一行。
答案 0 :(得分:0)
是的,row2
变量保存第一个循环的最后一行。
您可以使用字典保存所需的row2 [11]值:
## Product list
ta_prod = {} # dictionary instead of list
prod = open("products.txt", "r")
for line2 in prod:
row2 = line2.split(",")
prodordnavn = row2[4] # reading the referencing key
ta_prod[prodordnavn] = row2[11] # the value you would like to use in the other loop
## Producs Ordered
supne = []
ta_prodord = []
prodord = open("products_ordered.txt", "r")
for line in prodord:
row = line.split(",")
prodordnavn = re.sub('"',"",row[1])
ta_prodord.append(prodordnavn)
if prodordnavn in ta_prod:
value = ta_prod[prodordnavn] # reading the value from ta_prod dictionary by prodordnavn key
supne.append([row[0],row[1],row[2],value])