我正在审核的课程需要家庭作业练习的帮助。该练习是在关联规则挖掘中进行的,我非常困于组织数据的步骤之一。
我有一个由换行符分隔的数据字符串(每行代表客户购买的商品):
rawText =
"""fruit, bread, butter, soup
fruit, yogurt, coffee
whole milk, cream cheese, meat, vegetables"""
如何将这些数据放入看起来像这样的集合中(这是集合列表吗?):
[{‘fruit’, ‘bread’, ‘butter’, soup’},
{‘fruit’, ‘yogurt’, ‘coffee’},
{'whole milk', 'cream cheese', 'meat', 'vegetables'}
]
我试图按行尾将字符串断开:
names_list = [y for y in (x.strip() for x in rawText.splitlines()) if y]
my_set = set()
for i in names_list:
my_set.add(i)
这显然行不通。也许我正在以错误的方式进行操作?
答案 0 :(得分:6)
要获取集合列表,其中每个集合包含给定行中用逗号分隔的单词:
names_list = [set(line.strip().split(', ')) for line in raw_text.splitlines()]
答案 1 :(得分:0)
您已经关闭,但是有两个问题:
鉴于此,这应该可以解决您的问题
names_list = [set(line.strip().split(',')) for line in raw_text.splitlines()]
答案 2 :(得分:0)
或者,您可以使用csv
模块来处理行拆分,空格和定界符:
import csv
from io import StringIO
x = StringIO("""fruit, bread, butter, soup
fruit, yogurt, coffee
whole milk, cream cheese, meat, vegetables""")
with x as fin:
reader = csv.reader(fin, skipinitialspace=True)
res = list(map(set, reader))
结果
print(res)
[{'bread', 'butter', 'fruit', 'soup'},
{'coffee', 'fruit', 'yogurt'},
{'cream cheese', 'meat', 'vegetables', 'whole milk'}]