Python list去重及找出,统计重复项
http://bbs.chinaunix.net/thread-1680208-1-1.html
如何找出 python list 中有重复的项
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
#!/usr/bin/env python
# coding: utf-8 import os
import sys
import string
import operator
import re
import threading
import csv from time import sleep,ctime
from collections import defaultdict
from collections import Counter def test_01():
#content ==> ###pos=350143600,pts=2676718###
#filename="F:\\yingc\\work\\goxceed-dvbs-hd\\6605\\solution\\aa"
filename="./aa"
pos=-1
dts=-1
poslist=[]
dtslist=[] str1="###pos="
str2=",pts=" f = open(filename)
for line in f:
aa=line[0:len(str1)]
if aa == str1:
pos=line[len(str1):line.index(str2)]
dts=line[line.index(str2)+len(str2):len(line)-3-1]
poslist.append(pos)
dtslist.append(dts)
f.close() #s=[11,22,11,44,22,33]
d = defaultdict(list)
for k,va in [(v,i) for i,v in enumerate(poslist)]:
d[k].append(va)
#print d.items()
count=0
for value in d.items():
if len(value[1])>1:
print value
count=count+1
print "poslen:"+str(len(poslist))+",dtslen"+str(len(dtslist))
print str(len(d))+","+str(count) #d = defaultdict(list)
#for k,va in [(v,i) for i,v in enumerate(dtslist)]:
# d[k].append(va)
##print d.items()
#for value in d.items():
# if len(value[1])>1:
# print value #print Counter([11,22,11,44,22,33]) if __name__ == "__main__":
test_01()
print "finish"
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###
Python list去重及找出,统计重复项的更多相关文章
- 阅读OReilly.Web.Scraping.with.Python.2015.6笔记---找出网页中所有的href
阅读OReilly.Web.Scraping.with.Python.2015.6笔记---找出网页中所有的href 1.查找以<a>开头的所有文本,然后判断href是否在<a> ...
- python -- 对list去重并找出列表list中的重复元素
一.一个列表中可能含有重复元素,使用set()可以实现列表的去重处理,但是无法知道哪些元素是重复的,下面的函数用于找出哪些元素重复了,以及重复的次数. 代码: from collections imp ...
- Python实用黑科技——找出最大/最小的n个元素
需求: 快速的获取一个列表中最大/最小的n个元素. 方法: 最简便的方法是使用heapq模组的两个方法nlargest()和nsmallest(),例如: In [1]: import heapqIn ...
- Python基础-生物信息:找出基因,生物学家使用字母A、C、T和G构成的字符串建模一个基因组。
生物信息:找出基因,生物学家使用字母A.C.T和G构成的字符串建模一个基因组.一个基因是基因组的子串,它从三元组ATG后开始在三元组TAG.TAA或TGA之前结束.此外,基因字符串的长度是3的倍数,而 ...
- js中找string中重复项最多的字符个数
// split():字符串中的方法,把字符串转成数组. // sort():数组中的排序方法,按照ACALL码进行排序. // join():数组中的方法,把数组转换为字符串 function de ...
- python 找出数组重复的元素
""" 从头扫到尾,只要当前元素值与下标不同,就做一次判断,numbers[i]与numbers[numbers[i]], 相等就认为找到了重复元素,返回true,否则就 ...
- 【Python】使用geocoder找出本机IP所在经纬度和城市
代码: import geocoder g = geocoder.ip('me') print(g.latlng) # 经纬度 print(g.city) # 所在城市 输出: C:\Users\ho ...
- python多字符中找出最大匹配(网友处学习)
#如'abbcc','abbdd' 找到abba='abbcc'b='abbdd'from difflib import *s=SequenceMatcher(None,a,b)m=s.find_lo ...
- Python 脚本帮你找出微信上删除了你的“好友“
随机推荐
- Silverlight动画学习笔记(三):缓动函数
(一)定义: 缓动函数:可以将自定义算术公式应用于动画 (二)为什么要用缓动函数: 您可能希望某一对象逼真地弹回或其行为像弹簧一样.您可以使用关键帧动画甚至 From/To/By 动画来大致模拟这些效 ...
- Delphi XE5教程2:程序组织
内容源自Delphi XE5 UPDATE 2官方帮助<Delphi Reference>,本人水平有限,欢迎各位高人修正相关错误! 也欢迎各位加入到Delphi学习资料汉化中来,有兴趣者 ...
- IE下无法保存Cookie和Session问题
最近在做新的Web项目时,因为一个验证码无法保存在Cookie中,或者更确切地说是IE下无法保存Cookie的问题纠结了整整一天时间,考虑了多种原因,单步调试了不下三十次,也没有结果.甚至在无奈之下改 ...
- Dataguard之redo传输服务
一.Data Guard架构 整个Data Guard体系就是围绕三个关键点展开: 日志发送(Redo Send) 日志接收(Redo Receive) 日志应用(Redo Apply) 二.日志发送 ...
- oracle-linux下挂载"移动硬盘" NTFS类型
环境: ORACLE-LINUX 5.7 全新移动硬盘(未使用过) 移动硬盘空间3T 在默认情况下,Linux系统不支持NTFS分区挂载 1.服务器: A服务器和B服务器为一套ORACLE-RAC,移 ...
- highCharts 电流表、电压表
var highChartsSettingV = { chart: { margin: [5, 2, 5, 8], type: 'gauge', plotBorderWidth: 1, plotBac ...
- [原创] zabbix学习之旅四:mail客户端安装
相信大家使用zabbix的最主要目的就是当被监控机器发生故障时,能通过zabbix获得第一时间的报警提醒.zabbix常用的报警媒介有email,短信,jabber和脚本,这其中脚本类型最为灵活,尤其 ...
- Jenkins部署.NET网站项目
Jenkins Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 持 ...
- 2186: [Sdoi2008]沙拉公主的困惑 - BZOJ
Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现 ...
- IntelliJ IDEA 文件夹重命名--解决重命名后js文件引用找不到路径报404错误
情景: 说明:ExtJS是我后来的改的名字--原来叫extjs,可是当我把在页面的引用地址改为 src="ExtJS/.."后页面就报404错误,我把它改回之前的extjs就可以( ...