xbns.net
当前位置:首页 >> python列表元素去重 >>

python列表元素去重

1.使用set的特型,python的set和其他语言类似,是一个无序不重复元素集 orgList=[1,0,3,7,7,5]#list()方法是把字符串str或元组转成数组 formatList=list(set(orgList)) print(formatList) 结果:[0,1,3,5,7] 2.使用keys()方法 orgList=[1,0,3,7,7,5]#list

通过set来去重>>> l = [1,2,3,4,5,2,1,3,45,3,21,12,4]>>> set(l)set([1, 2, 3, 4, 5, 12, 45, 21])>>> print list(set(l))[1, 2, 3, 4, 5, 12, 45, 21]>>>

#!/usr/bin/env python# coding=utf-8#python 2.7t = [[1,2,0],[1,-1,3],[2,4,-1]]print map(lambda x:[[i,0][i<0] for i in x],t)

b = {}for dic in [each.items() for each in a]: for key,value in dic: b[key] = value

使用列表推导,只保留元素个数等于1的 a = ['a', 'b', 'c', 'd', 'a', 'a'] b = [x for x in a if a.count(x) == 1] print b 列表推导中的x for x in a if a.count(1) == 1和下面的for循环等价,不过更简洁:b = [] for x in a: if a.count(x) == 1: b.append(x) print b

int max = 第一个数 while(没读完) 当前数字是否比 max 大, 如果是,max = 当前数字 最后max就是最大值.

import copya = [{'a':12,'b':21},{'a':13,'b':22},{'a':14,'b':22},{'a':15,'b':23},{'a':16,'b':22}]d = {}for i in a: d.setdefault(i['b'], 0) d[i['b']] += 1at = copy.copy(a)for i in at: if d[i['b']] > 1: a.remove(i)print a先把b值统计一下.然后再一个比对,如果统计个数大于1,就从列表中移出.

可以对第二个list的元素进行遍历,检查是否出现在第二个list当中,如果使用表理解,可以使用一行代码完成任务.list1 = [1,2,3,4,5] list2 = [4,5,6,7,8] print [l for l in list1 if l in list2]# [4,5] 如果每一个列表中均没有重复的元素,那么还有另外一种更好的办法.首先把两个list转换成set,然后对两个set取交集,即可得到两个list的重复元素.set1 = set(list1) set2 = set(list2) print set1 & set 2# {4,5}

举个栗子:原数组长度,与去重后的数据,判断长度,长度相等,则证明无重复项,不相等就说明有重复项str=[1,2,3,4,5]if len(str)==len(set(str)): print "no dump"else: print "dump"

参考如下:import copya = [{'a':12,'b':21},{'a':13,'b':22},{'a':14,'b':22},{'a':15,'b':23},{'a':16,'b':22}]d = {}for i in a:d.setdefault(i['b'], 0)d[i['b']] += 1at = copy.copy(a)for i in at:if d[i['b']] > 1:a.remove(i)print a先把b值统计一下.然后再一个比对,如果统计个数大于1,就从列表中移出.

hhjc.net | qzgx.net | fnhp.net | zhnq.net | zxpr.net | 网站首页 | 网站地图
All rights reserved Powered by www.xbns.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com