我有成千上万的产品,例如每种产品的成分:
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]}
因此每个项目的列表大小会有所不同。有人可以帮我解决这个问题吗?感谢
答案 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)