2016-04-25 7 views
-1
sentence = raw_input("Enter a sentence: ") 
sentence = sentence.lower().split() 
uniquewords = [] 
for word in sentence: 
    if word not in uniquewords: 
     uniquewords.append(word) 

positions = [uniquewords.index(word) for word in sentence] 

recreated = " ".join([uniquewords[word] for word in positions]) 

positions = [x+1 for x in positions] 
print uniquewords 
print positions 
print recreated 

file = open('task2file1.txt', 'w') 
file.write('\n'.join(uniquewords)) 
file.close() 

file = open('task2file2.txt', 'w') 
file.write('\n'.join(positions)) 
file.close() 

Dies ist der Code, den ich habe bisher und alles funktioniert, außer die Positionen in einer Textdatei zu speichern, die Fehlermeldung, die ich bekommen istSpeichern von Zahlen in eine Datei

"file.write('\n'.join(positions)) 
TypeError: sequence item 0: expected string, int found" 
+1

Haben Sie versucht, die Fehlermeldung in einer Google-Suche einfügen? – TigerhawkT3

Antwort

2

positions von Strings in eine Liste konvertieren .

file.write('\n'.join(str(p) for p in positions)) 
3

Die .join()-Methode kann nur Zeichenfolgenlisten verknüpfen. Sie müssen die int s in Ihrer position Liste in Strings konvertieren:

file.write('\n'.join(str(p) for p in positions)) 

oder

file.write('\n'.join(map(str, positions))) 
+0

Prost das hat sehr geholfen! – pythonprogrammer

Verwandte Themen