我想知道在避免重复的同时创建列表的最佳方法是什么。
我在mysql中有一些数据包含产品类型。
例如:
id ------- category
1 -------- food, drink, vege
2 -------- food, drink
3 -------- vege, baby goods
4 -------- fish
目标的输出是:
['food','drink','vege','baby goods','fish']
(请注意订单对我来说无关紧要)
数据集有超过40,000条记录,因此手动检查肯定不是一种选择......
如果你能给我一个说明或建议,我将不胜感激。
答案 0 :(得分:5)
Python集不允许重复。因此,您可以使用集合理解构建一组唯一的类别,如此
unique_categories = {item.strip() for row in cur for item in row[1].split(",")}
例如,
a = "food, drink, vege"
print {item.strip() for item in a.split(",")}
<强>输出强>
set(['food', 'drink', 'vege'])
您可以像列表一样迭代集合。但是,如果您希望稍后将其转换为列表,则可以使用list
这样的函数
unique_categories = list(unique_categories)
答案 1 :(得分:0)
只需更改数据类型即可设置它将起作用
示例
x = ['food','drink','vege','baby goods','food']
如果您想要以下输出
x = ['food','drink','vege','baby goods']
就这样做
x = set(x)
完成了
在集合中没有重复的成员。