Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die zeilenweise Deduplizierung von Text in Python

So implementieren Sie die zeilenweise Deduplizierung von Text in Python

WBOY
WBOYOriginal
2016-12-05 13:27:131939Durchsuche

Text:

Jede Zeile enthält nach der Heraufstufung einige Zahlen. Wenn diese Zahlen gleich sind, wird sie als dieselbe Zeile betrachtet. Es wird nur eine Zeile beibehalten.

Dinge:

Schnitt basierend auf Wörterbuch und Zeichenfolge.

Erstellen Sie ein leeres Wörterbuch.

Lesen Sie den Text und schneiden Sie die erste Hälfte jeder Zeile aus. Während des Lesens durchläuft der Text das Wörterbuch, um zu suchen. Wenn er nicht gefunden wird, schreiben Sie die Zeile in das Wörterbuch. Andernfalls bedeutet dies, dass die Zeile in das Wörterbuch geschrieben wurde (d. h. es ist eine doppelte Zeile aufgetreten) und nicht mehr in das Wörterbuch geschrieben wird. Dadurch wird der Zweck erreicht, nur eine Zeile für doppelte Zeilen beizubehalten.

Der Text lautet wie folgt:

/promotion/232 utm_source
/promotion/237 LandingPage/borrowExtend/? ;
/promotion/25113 LandingPage/mhd
/promotion/25113 LandingPage/mhd
/promotion/25199 com/LandingPage
/promotion/254 LandingPage/mhd/mhd4/? ;
/promotion/259 LandingPage/ydy/? ;
/promotion/25113 LandingPage/mhd
/promotion/25199 com/LandingPage
/promotion/25199 com/LandingPage

Der Ablauf ist wie folgt:

line_dict_uniq = dict()
with open('1.txt','r') as fd:
for line in fd:
key = line.split(' ')[0]
if key not in line_dict_uniq.values():
line_dict_uniq[key] = line
else:
continue
print line_dict_uniq 
print len(line_dict_uniq)
# 这里是打印了不重复的行(重复的只打印一次),实际再把这个结果写入文件就可以了,
# 就不写这段写入文件的代码了

Die Ausführungseffizienz des oben genannten Programms ist relativ gering. Eine Änderung wie folgt verbessert sie:

line_dict_uniq = dict()
with open('1.txt','r') as fd:
for line in fd:
key = line.split(' ')[0]
if key not in line_dict_uniq.keys():
line_dict_uniq[key] = line
else:
continue
print line_dict_uniq
print len(line_dict_uniq)

Das Obige ist das Python, das Ihnen der Editor zum zeilenweisen Deduplizieren von Text vorstellt. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der Script House-Website bedanken!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn