-4

Also im Grunde habe ich eine Datei, die zwei Listen enthält, eines von jedem Wort, das in dem Satz ist und die Position, in der sie erscheinen (ich verwendete. Index).Ich arbeite an einem Stück Code, der in der Lage, einen komprimierten Satz zu dekomprimieren

Zum Beispiel, wenn der ursprüngliche Satz ist:

Hallo Hallo Hallo

Die komprimierte Version wie dies in der Textdatei aussieht:

[ 'Hallo', 'Hallo']

[1, 1, 3]

Die Dekomprimierung muss es wieder in den ursprünglichen Satz ändern, nur aus den Informationen in der Textdatei wie folgt:

Hallo Hallo Hallo

Gibt es jemanden, der, Dank im Voraus helfen kann

+3

Bitte fügen Sie den Code, die Sie versucht haben, –

+4

Was bedeutet das '3' in' [1, 1, 3] 'bedeuten? Ich könnte verstehen, wenn es "[1, 1, 2]" war (in diesem Fall ist es ein kurzer Einzeiler). – Matthias

+0

3 ist die Position des Wortes 'hi', mit .index() listet die Positionen nicht verschiedene Wörter –

Antwort

0

Die Frage ist eine shacky ein, Zersetzung von Index [1,1,3] ist das Beste, was Sie erreichen können und dann die Ausgabe bekommen. Es ist eine schlechte Praxis, den Code direkt in den Antworten ohne die richtigen Eingaben von Benutzer, der gefragt hat, zu geben. Sowieso ist hier meine Lösung:

name_list = ['Hello','Hi'] 
index_list = [1, 1, 3] 
decomp_list = list() 
prev = index_list[0] 
x=0 
#decomposing the index locations 
for cur in range(1,len(index_list)): 
    if(prev==index_list[cur]):x+=1 
    else: 
     index_list[cur]-=x 
     x=0 
    prev=index_list[cur] 
#Getting the output 
for i in index_list: 
    decomp_list.append(name_list[i-1]) 
print decomp_list 
+0

Ich bekomme immer diesen Fehler: Traceback (letzter Aufruf zuletzt): Datei "D: \ Informatik \ Task 3 \ Code \ Version 1.py", Zeile 44, in decomp_list.append (name_list [i-1 ]) TypeError: nicht unterstützte Operandentypen für -: 'str' und 'int' –

+0

Gibt es trotzdem einen Eintrag in name_list und index_list aus einer Textdatei –

+0

Ja Denva, Sie können Datei IO mit der Funktion open() verwenden Öffnen Sie die Dateiverbindung im Lesemodus und speichern Sie dann entweder die Daten in der Liste von der Funktion read() oder führen Sie einen sequentiellen Puffer bis zum Ende der Datei aus. –