如何在避免重复的同时创建列表?

时间:2014-01-22 04:49:22

标签: python string join append mysql-python

我想知道在避免重复的同时创建列表的最佳方法是什么。

我在mysql中有一些数据包含产品类型。

例如:

id ------- category

1 --------   food, drink, vege

2 --------   food, drink

3 --------   vege, baby goods

4 --------   fish

目标的输出是:

['food','drink','vege','baby goods','fish']

(请注意订单对我来说无关紧要)

数据集有超过40,000条记录,因此手动检查肯定不是一种选择......

如果你能给我一个说明或建议,我将不胜感激。

2 个答案:

答案 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)

完成了

在集合中没有重复的成员。