2016-05-23 18 views
0

ich mit einer großen txt-Datei (1.000.000 Elemente) befasse, zum Beispiel:Wie nur das erste Element in Python speichern

tammy_wynette band 
tammy_wynette artist 
tammy_wynette musical_artist 
tammy_wynette group 
tammy_wynette person 
tammy_wynette agent 
tammy_wynette organisation 
mansion_historic_district architectural_structure 
mansion_historic_district place 
mansion_historic_district building 
joe_sutter person 
joe_sutter agent 

Was ich nur zu bekommen für jedes Element das erste Element:

tammy_wynette band 
mansion_historic_district architectural_structure 
joe_sutter person 

ich benutze Wörterbuch, aber mein Code ist sehr langsam:

dicCSK = {} 
for line in fin: 
    line=line.strip('\n') 
    try: 
     c1, c2 = line.split("\t") 
    except ValueError: print line 
    if c1 not in dicCSK.keys(): 
     dicCSK[c1]=c2 
     fout.writelines(c1+"\t"+c2+'\n') 

gibt es eine schnelle Möglichkeit, es zu tun?

Antwort

3

Tun Sie einfach if c1 not in dicCSK: anstelle von if c1 not in dicCSK.keys():. Wenn Sie Python 2.x verwenden, geben keys Schlüssel als Liste zurück, was bedeutet, dass sie nacheinander überprüft werden müssten.

Wenn Sie nicht die Werte später mit könnten Sie auch set statt:

dicCSK = set() 
for line in fin: 
    line=line.strip('\n') 
    try: 
     c1, c2 = line.split("\t") 
    except ValueError: print line 
    if c1 not in dicCSK: 
     dicCSK.add(c1) 
     fout.writelines(c1+"\t"+c2+'\n') 
+0

Danke, gelöstes Problem – flyingmouse

Verwandte Themen