如何从不在当前循环中的列表中追加信息

时间:2014-01-06 15:26:42

标签: python list append

我在两个列表中搜索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开始计数),该条目与上面的匹配位于同一行。

1 个答案:

答案 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])