python 列表(list)去除重复的元素总结
方法一:
将list作为set的构造函数构造一个set,然后再将set转换会list就可以
>>> myList = [1, 2, 3, 3, 2, 2, 4, 5, 5] >>> myList [1, 2, 3, 3, 2, 2, 4, 5, 5] >>> myList = list(set(myList)) >>> myList [1, 2, 3, 4, 5]
方法二:使用列表推导,只保留元素个数等于1
例如:
a = ['a', 'b', 'c', 'd', 'a', 'a'] b = [x for x in a if a.count(x) == 1] print b
不过还可以使用下面的方法,只是上面的方法更简单
b = [] for x in a: if a.count(x) == 1: b.append(x) print b
方法三:使用字典中的fromkeys方法
a = ['b','c','d','b','c','a','a'] b = {}.fromkeys(a).keys() print b
方法四:用list类的sort方法
a = ['b','c','d','b','c','a','a'] b = list(set(a)) b.sort(key=a.index) print b 不过,也可以这样写 a = ['b','c','d','b','c','a','a'] b = sorted(set(a),key=a.index) print b
方法五:使用用遍历
l1 = ['b','c','d','b','c','a','a'] l2 = [] for i in l1: if not i in l2: l2.append(i) print l2 上面的代码也可以这样写 l1 = ['b','c','d','b','c','a','a'] l2 = [] [l2.append(i) for i in l1 if not i in l2] print l2 这样就可以保证排序不变了: ['b', 'c', 'd', 'a']
方法六:使用lambda方法
>>> lst = [1, 2, 4, 5, 5, 5, 4, 7] >>> print filter(lambda x: lst.count(x)<2, lst) [1, 2, 7]
如果觉得对您有帮助,麻烦您点一下推荐,谢谢!
好记忆不如烂笔头
好记忆不如烂笔头