使用Python

时间:2016-10-14 18:30:37

标签: python dictionary

我有成千上万的产品,例如每种产品的成分:

ProductID  | Ingredients
 00001     |  itemA, itemB, itemC, itemD
 00002     |  itemF, itemD, itemG, itemA, itemI
 00003     |  itemH, itemI, itemD, itemF, itemT,itemB, itemC

........等等。

我想制作一份独特的成分清单,并制作出哪种成分在哪种产品中的地图。所以例如我想以下列方式得到结果输出:

{itemA: [00001,00011, 00005,00007]}
{itemB: [00003, 00002, 000056]}
{itemC: [00009, 00087, 00044, 00647, 00031, 00025]}

因此每个项目的列表大小会有所不同。有人可以帮我解决这个问题吗?感谢

1 个答案:

答案 0 :(得分:1)

假设它是一个文本文件,它可能是这样的:

from collections import defaultdict

product_ingredients_mapping = defaultdict(list)
file_data = open('products.txt')

for row in file_data.readlines():
    data = row.split('|')
    ingredients = data[1].split(',')
    product_id = data[0].strip()
    for ingredient in ingredients:
       product_ingredients_mapping[ingredient.strip()].append(product_id)