python去重復
A. python怎麼去掉重復值
去掉重復值的話,那一定是安在他的系統里進行相關設置了,那麼去掉的方法那就是把不要的內容給他刪除掉。留下他你需要的就可以。
B. 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)
C. Python怎麼從文件里的數據去重復,去重復後,再保存到文件里,把重復的數據保存出來
內容讀出來通過逗號分割成一個列表,再去掉重復的,再寫入到文件裡面
#-*-coding:utf-8-*-
filename='data.txt'
withopen(filename,'r')asf:
content=f.read()
content=list(set(content.split(',')))
content=','.join(content)
withopen(filename,'w')as_f:
_f.write(content)
D. python list 去重復
import
a = [{'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']] += 1
at = .(a)
for i in at:
if d[i['b']] > 1:
a.remove(i)
print a
先把b值統計一下。然後再一個比對,如果統計個數大於1,就從列表中移出。
E. python去除文本中重復的字元串
你的數據都是一行一行的嗎?
是的話這樣試試
input=open("a.txt","r").read()
output=open("b.txt","w+")
patterns=[]
forlineininput.split(" "):
iflinenotinpatterns:
printline
patterns.append(line+" ")
forpatterninpatterns:
output.write(pattern)
output.close()
測試了下滿足你的輸入輸出
F. python列表之間去重復
再取C之前 從a裡面先刪除 包含 2,9 這倆個元素 ,不就可以了
G. python如何去除重復行並分別統計重復的行數已有去除重復的代碼
python的速度效率是不高的,如何對速度要求比較高的話建議可以用c來寫。
我寫了這個代碼,python2.6+windows xp測試通過。
希望能幫到你~
===================================================
a=[] #初始化要用到的列表a,用於記錄原始行信息
b=[] #初始化要用到的列表b,用於記錄結果數據,由兩項構成。前一項為行信息如「小明:90」,後一項為該行對應的出現次數如2
f1=file("1.txt", "r") #打開1.txt文件
for line in f1:
a.append(line) #將1.txt文件每一行作為一個元素,存入列表a
f1.close
for n in a: #遍歷a中每一項(記為n),即1.txt中每一行
flag=1
for i in range(0,len(b)):
if n == b[i][0]: #n與列表b中的每一項對比,如果有相等的:
b[i][1]=b[i][1]+1 #那麼對應的出現計數加1
flag=0
break
if flag==1: #如果前面的比對沒有一個相等的,即該行是第一次出現:
b.append([n,1]) #那麼在列表b中添加改行為新的一項
f2=file("2.txt", "w") #打開2.txt文件,用於輸出
for n in b: #輸出格式為:行信息 (tab) 出現次數 (回車)
f2.write(str(n[0][0:-1]) + "\t")
f2.write(str(n[1]) + "\n")
f2.close
print "Finished" #完成
H. 求教, Python 怎麼去掉重復的詞, 下面有例子。
1.如果你的txt 文件不大的話 可以直接 tmp = open('**.txt').readlines() #把內容一次性全部讀取出來 是一個列表set(tmp) #這個就是把列表 去重復 然後 你可以把 這個去重後的tmp 寫入到新的文件2.txt很大,那麼只能一行一行的讀取去重了#!/usr/bin/env python# coding=utf-8# python 2.7outfile = open('result-readline.txt', 'w') #新的文件list_1=[]for line in open('test.txt'): #老文件 tmp = line.strip() if tmp not in list_1: list_1.append(tmp) outfile.write(line)outfile.close()
I. python如何去除重復行並寫入另一個文件
lines_seen=set()
outfile=open("2.txt","w")
forlineinopen("1.txt","r"):
iflinenotinlines_seen:
outfile.write(line)
lines_seen.add(line)
outfile.close()
代碼
J. python 如何刪除重復值
import pandas as pd,numpy as np
df=df=pd.DataFrame({'a':[1,1,3,1],'b':[2,3,1,4],'c':[0.399999,0.399998,0.399998,0.399998]})
df1=pd.concat([pd.DataFrame(np.sort(df.iloc[:,:2].values,axis=1)),df.c],axis=1).drop_plicates()
print(df1)