[英]Python - Create a list of sets or set of sets?
对于我正在审核的课程,需要帮助完成家庭作业。 练习是关联规则挖掘,我非常坚持组织数据的其中一个步骤。
我有一串由换行符分隔的数据(每行代表客户购买的商品):
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)
这显然不起作用。 也许我会以错误的方式解决这个问题?
要获取每个集合的集合列表,其中包含来自给定行的逗号分隔的单词:
names_list = [set(line.strip().split(', ')) for line in raw_text.splitlines()]
你很近但有两个问题:
鉴于此,这应该可以解决您的问题
names_list = [set(line.strip().split(',')) for line in raw_text.splitlines()]
作为替代方案,您可以使用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'}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.