python文件去重
❶ python如何去除重复行并写入另一个文件
问题描述的并不准确
要看重复行是连续的还是非连续的
如果是连续的, 可以考虑缓存一行, 然后把后面的行与缓存的行比较, 如果不是,那就得缓存所有不同的行, 每次读一行就要与所有缓存过的行做比较了,伪代码如下:
#coding=utf-8
fin=open("input.txt","r")
fout=open("output.txt","a+")
bufferedline=""
while(finand(line=fin.readline())!=bufferedline):
fout.write(line)
fin.close()
fout.close()
如果缓存行不连续的话,伪代码如下:
#coding=utf-8
fin=open("input.txt",'r')
fout=open('output.txt','a+')
bufferedlines=[]
while(finand(line=fin.readline())):
i=0;
for(i=0;i<len(bufferedlines);++i):
if(line==bufferedlines[i]):
break;
ifi==len(bufferedlines):
bufferedlines.append(line)
fout.write(line)
❷ 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()方法是把字符串str或元组转成数组
formatList=list({}.fromkeys(orgList).keys())
print(formatList)
结果:
[0,1,3,5,7]
上面两种方法的问题是:结果是没有保持原来的顺序。
3.循环遍历法
orgList=[1,0,3,7,7,5]
formatList=[]
foridinorgList:
ifidnotinformatList:
formatList.append(id)
print(formatList)
结果:
[1,0,3,7,5]
这样的代码不够简洁
4.按照索引再次排序
orgList=[1,0,3,7,7,5]
formatList=list(set(orgList))
formatList.sort(key=orgList.index)
print(formatList)
结果:
[1,0,3,7,5]
❸ python-列表-元素去重
>>>re.sub("(.)\1+","\1","avvvcctaa")
'avcta'
❹ python,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])
>>>printlist(set(l))
[1,2,3,4,5,12,45,21]
>>>
❺ python如何去除重复行并写入另一个文件
lines_seen=set()
outfile=open("2.txt","w")
forlineinopen("1.txt","r"):
iflinenotinlines_seen:
outfile.write(line)
lines_seen.add(line)
outfile.close()
代码
❻ python中列表如何去重
可以利用set去重
代码如下:
#coding=utf-8
li=[1,2,3,4,2,1,3,0]#列表
li2=set(li)
print(li2)
❼ python中实现两个txt文档的去重功能(即去掉第一个文档中和第二文档相同的行)
# -*- coding: utf-8 -*-
#
# python 2.7
fp1 = file('', 'r')
fp2 = file('', 'r')
fp3 = file('', 'w')
d1 = {}
d2 = {}
isFirst = True
for line in fp1:
if not isFirst:
d1[hash(line)] = line
else:
isFirst = False
fp1.close()
isFirst = True
for line in fp2:
if not isFirst:
d2[hash(line)] = line
else:
isFirst = False
fp2.close()
diff = set(d1.keys()) - set(d2.keys())
for key in diff:
fp3.write(d1[key])
fp3.close()
❽ Python文件中如何除去重复行 前一行与后一行进行对比的形式
除开读写文件,去重:
去重后的list=list(set(原list))
❾ python 将文件内容去重,然后写出到txt
可以字典套字典来用
book={
'a':{'A':1},
'b':{'B':0},
'c':{'C':1},
'd':{'D':0}
}
bookname='d'
bookauthor='D'
bookpay=1
printbook
#先判是否有这本书
ifbooknameinbook:
#判断是否是该作者的
ifbookauthorinbook[bookname]:
#再判断是否付费1付费,0未付费
ifbook[bookname][bookauthor]==0:
ifbookpay==1:
book[bookname][bookauthor]=1
else:#不是该作者
book[bookname][bookauthor]=bookpay
else:#没有这本书
book[bookname][bookauthor]=bookpay
printbook
#总体来说就是这么个意思,可以参考修改自己的代码
#自己动手丰衣足食~