我得到了一个列表,在一列(最后一列)中是一个逗号分隔的项目字符串:
temp = ['AAA', 'BBB', 'CCC-DDD', 'EE,FFF,FFF,EE']
现在我要删除该列中的重复项。你知道吗
我试着把每一列都列出来:
e = [s.split(',') for s in temp]
print e
这给了我:
[['AAA'], ['BBB'], ['CCC-DDD'], ['EE', 'FFF', 'FFF', 'EE']]
现在我尝试用以下方法删除重复项:
y = list(set(e))
print y
什么结果出错了
TypeError: unhashable type: 'list'
我很感激任何帮助。你知道吗
编辑:
我没说最终结果是什么。清单应该是这样的
temp = ['AAA', 'BBB', 'CCC-DDD', 'EE', 'FFF']
最后一列应该删除重复项。你知道吗
在列表的元素上应用
set
,而不是在列表的列表上。您希望set
包含每个列表的字符串,而不是列表。你知道吗你也可以直接做:
您可能需要
sorted(set(s.split(',')))
来确保字典顺序(集合没有顺序,even in python 3.7)对于平面有序列表,请创建平面集并对其排序:
结果:
这是一个使用itertools.chain方法的解决方案
相关问题 更多 >
编程相关推荐