博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python list去重及找出,统计重复项
阅读量:5947 次
发布时间:2019-06-19

本文共 3123 字,大约阅读时间需要 10 分钟。

http://bbs.chinaunix.net/thread-1680208-1-1.html

 

http://www.cnblogs.com/feisky/archive/2012/12/06/2805251.html

比较容易记忆的是用内置的set

l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
print l2
还有一种据说速度更快的,没测试过两者的速度差别
l1 = ['b','c','d','b','c','a','a']
l2 = {}.fromkeys(l1).keys()
print l2
这两种都有个缺点,祛除重复元素后排序变了:
['a', 'c', 'b', 'd']
如果想要保持他们原来的排序:
用list类的sort方法
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
l2.sort(key=l1.index)
print l2
也可以这样写
l1 = ['b','c','d','b','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print l2
也可以用遍历
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']

转自:http://blog.csdn.net/rainharder/article/details/5728443

 

1 #!/usr/bin/env python 2 # coding:   utf-8 3  4 import os 5 import sys 6 import string 7 import operator 8 import re 9 import threading10 import csv11 12 from time import sleep,ctime13 from collections import defaultdict14 from collections import Counter15 16 17 def test_01():18     #content  ==>  ###pos=350143600,pts=2676718###19     #filename="F:\\yingc\\work\\goxceed-dvbs-hd\\6605\\solution\\aa"20     filename="./aa"21     pos=-122     dts=-123     poslist=[]24     dtslist=[]25     26     str1="###pos="27     str2=",pts="28     29     f = open(filename)30     for line in f:31         aa=line[0:len(str1)]32         if aa == str1:33             pos=line[len(str1):line.index(str2)]34             dts=line[line.index(str2)+len(str2):len(line)-3-1]35             poslist.append(pos)36             dtslist.append(dts)37     f.close()38     39     #s=[11,22,11,44,22,33]40     d = defaultdict(list)41     for k,va in [(v,i) for i,v in enumerate(poslist)]:42         d[k].append(va)43     #print  d.items()44     count=045     for value in d.items():46         if len(value[1])>1:47             print value48             count=count+149     print "poslen:"+str(len(poslist))+",dtslen"+str(len(dtslist))50     print str(len(d))+","+str(count)51 52     #d = defaultdict(list)53     #for k,va in [(v,i) for i,v in enumerate(dtslist)]:54     #    d[k].append(va)55     ##print  d.items()56     #for value in d.items():57     #    if len(value[1])>1:58     #        print value59 60     #print Counter([11,22,11,44,22,33])61 62 63 64 65 if __name__ == "__main__":66     test_01()67     print "finish"68

 

aa文件中的内容如:

###pos=1349796,pts=15015######pos=2337820,pts=27986######pos=2705098,pts=29988######pos=6660200,pts=54721######pos=8055314,pts=61061######pos=8871800,pts=65315######pos=9503420,pts=68401######pos=12855218,pts=88338######pos=14253082,pts=98765######pos=15813764,pts=109192######pos=15813764,pts=109192######pos=15813764,pts=109192######pos=15813764,pts=109192######pos=16056146,pts=110735######pos=16394580,pts=113988######pos=17011532,pts=119911######pos=17257542,pts=122372######pos=17417974,pts=124040######pos=17816976,pts=128169######pos=17993398,pts=129838######pos=18302190,pts=132215######pos=19166088,pts=139055######pos=19675276,pts=143059######pos=19994992,pts=146146###
你可能感兴趣的文章
iOS通过http post上传图片
查看>>
OpenStack Object Storage swift操作和实践
查看>>
伸展树的学习(三):源代码分析
查看>>
ES学习笔记之--ES的集群是如何组建起来的
查看>>
我的Linux生涯之YUM
查看>>
图书清单(看不完的电子书啊)
查看>>
Btrace
查看>>
瘦AP的初始化配置
查看>>
ONOS白皮书下篇之ONOS价值主张
查看>>
VSAN API 探索第 4 部分 – VSAN 磁盘映射
查看>>
从CALSSPATH加载properties文件
查看>>
asp.net GridView激发了未处理的事件“PageIndexChanging”的分析
查看>>
MPLS
查看>>
tar.xz文件如何解压
查看>>
jquery 给textarea赋值,firefox下出现[object XMLDocument]
查看>>
我的友情链接
查看>>
2014年首届CCF软件能力认证试题 题目二
查看>>
c语言数据类型汇总
查看>>
部署Exchange 2010(二)首台MailBox服务器
查看>>
用好这块风水宝地--开博之语
查看>>