python list每个重复元素保留一次,python 列表(list)去除重复的元素总结

您所在的位置:网站首页 删除重复项只留一个 python list每个重复元素保留一次,python 列表(list)去除重复的元素总结

python list每个重复元素保留一次,python 列表(list)去除重复的元素总结

2024-02-18 08:19| 来源: 网络整理| 查看: 265

方法一:

将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)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3