2017-04-17 6 views
0

Ich haben eine Textdatei mit:Druckelemente und ignorieren die letzten zwei Elemente in einer Tabelle

SKT:SSG:2:1 
LN:FNC:1:1 
NWS:ENY:2:0 

Ich mag die Elemente in einer Tabelle zum Ausdrucken der letzten beiden Elemente zu ignorieren, die die Ziffern sind. Hier ist, was ich bisher getan habe:

fileName = input("Enter file name:") 
match = open(fileName) 
table = [] 

for line in match: 
    contents = line.strip().split(':') 
    table.append(contents) 

#add a loop to leave out last two digits? 

print(table) 

Der Ausgang I für einen Start zu bekommen ist:

[['SKT','SSG','2','1'],['LN','FNC','1',1'],['NWS','ENY','2','0']] 

Der Ausgang Ich möchte:

[['SKT','SSG'],['LN','FNC'],['NWS','ENY']] 

Ich habe in ein gesuchtes Begriff bekannt als Array-Slicing und schaffte es, mit zu kommen:

for i in range(len(table)): 
    print(table[i][:-2]) 

aber ich weiß nicht, wie ich es in den Code, den ich geschrieben habe, implementiere, da ich mit dem Lesen von Dateien noch nicht vertraut bin. Jede Hilfe wird geschätzt. Grüße.

+0

Warum nicht einfach 'table.append (contents)' in 'table.append (contents [: - 2])' '? – CoryKramer

Antwort

1

Unter der Annahme, die vollständige Reihe in table für eine andere Nutzung benötigt wird, können Sie eine neue Liste erstellen und drucken die neuen:

print([row[:-2] for row in table]) 

Wenn die volle Zeile nicht erforderlich ist, müssen Sie nur die entsprechenden Werte hinzufügen , wie CoryKramer erwähnt in der Frage Kommentare.

0

Sie können einfach Ihren aktuellen Code wie unten ändern:

contents = line.strip().split(':')[:-2] 

den restlichen Code halten, wie es ist. Split Methode gibt eine Liste zurück, so dass Sie auch schneiden können.

0

Dieser Code liest die Datei Zeile für Zeile. Jede Zeile wird auf das Zeichen ":" aufgeteilt, um eine Liste zu bilden, und die Liste wird an die Liste table angehängt, um eine Liste von Listen zu bilden. Schließlich wird jede Liste in table minus die letzten zwei Elemente gedruckt.

fileName = input("Enter file name:") 
match = open(fileName) 
table = [] 

for line in match: 
    contents = line.strip().split(':') 
    table.append(contents) 

print([content[:-2] for content in table]) 
Verwandte Themen