2016-12-08 1 views
0

Ich versuche herauszufinden, wie man Elemente aus einer Datei in eine 3D-Liste bekommt.Wie können Elemente aus einer Datei in eine 3D-Liste eingefügt werden? Python

Zum Beispiel, wenn meine people.txt Datei sah aus wie:

3 4 

SallyLee 
MallieKim 
KateBrown 
JohnDoe 
TreyGreen 
SarahKind 

Aber ich will nur SallyLee etc in der 3D-Liste ohne die Top-Zahlen.

Bisher habe ich codiert:

def main(): 
    list = [] 


    peopleFile = open("people.txt") 
    peopleRead = peopleFile.readlines() 

    for lines in peopleRead: 
     list.append([lines]) 

    peopleFile.close() 
    print(list) 
main() 

Dies druckt es dann mit den Zahlen, und nicht in einer 3D-Liste.

Ein Beispiel von dem, was ich zu tun versuchen, ist:

[[[SallyLee],[MallieKim],[KateBrown]],[[JohnDoe],[TreyGreen],[SarahKind]]] 

wo jede dritte Person zusammen ist „gruppiert“.

Ich erwarte nicht, dass irgendjemand irgendetwas für mich programmiert!

Ich hoffe nur, dass jemand mich in die richtige Richtung führen kann.

Danke

Antwort

0

Vor allem, wenn alle Sie suchen Strings ist (keine Zahlen) Sie Ihre for-Schleife aus mit einer Bedingung beginnen kann jedes Element zu übergeben, die Zahlen hat. Sie können dies mit der try:/except: tun. Als nächstes können Sie die Parameter der Bereichsfunktion verwenden, um eine Liste der Indizes zu erstellen, an denen Sie interessiert sind. Wenn Sie nach Dreiergruppen gruppieren möchten, können Sie range eine Liste der Vielfachen von drei (0,3 , 6,9, ...)

Hier ist mein Code:

file = open('text.txt','r') 

i = 0 
names = [] 
for line in file: 
    line.split() #This will split each line into a list 
    try: #This will try to convert the first element of that list into an integer 
     if int(line[0]): #If it fails it will go to the next line 
      continue 
    except: 
     if not line.strip(): #This will skip empty lines 
      continue 
     names.append(line.strip()) #First let's put all of the names into a list 


names = [names[i:i+3] for i in range(0,len(names)-1,3)] 
print names 

Ausgang:

[['SallyLee', 'MallieKim', 'KateBrown'], ['JohnDoe', 'TreyGreen', 'SarahKind']] 
Verwandte Themen