當前位置:首頁 » 編程語言 » python文件去重

python文件去重

發布時間: 2022-03-14 17:48:43

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

#總體來說就是這么個意思,可以參考修改自己的代碼
#自己動手豐衣足食~
熱點內容
ftp06n08n代替 發布:2025-01-16 06:53:43 瀏覽:233
androidstudio結構 發布:2025-01-16 06:39:22 瀏覽:245
五區布魯是什麼伺服器 發布:2025-01-16 06:35:13 瀏覽:865
androidhandler更新ui 發布:2025-01-16 06:21:28 瀏覽:171
java與mvc 發布:2025-01-16 06:20:40 瀏覽:333
lol最新刷金幣腳本 發布:2025-01-16 05:56:22 瀏覽:564
電腦登陸加密 發布:2025-01-16 05:21:57 瀏覽:153
安卓怎麼修復閃退 發布:2025-01-16 05:21:54 瀏覽:554
易盾加密 發布:2025-01-16 05:20:51 瀏覽:895
html上傳圖片的代碼 發布:2025-01-16 05:16:55 瀏覽:601