2017-04-24 1 views
0

Wie kann ich die Druckschleife addieren, um eine Zeichenfolge mit Leerzeichen zu bilden?Wie konvertiert man eine Druckschleifenfunktion in eine endgültige Zeichenfolge aus Wörterbüchern

positions = [1, 2, 3, 4, 1, 2, 5, 6, 7, 2, 8, 6, 3, 9, 10] 
words = ['this', 'is', 'not', 'howr', 'needed', 'and', 'it', 'wrong', 'right', ':('] 
poswords = dict(zip(positions, words)) 
print(poswords, words) 
for i in positions: 
    print(poswords[i]," ",) 

Wenn ich will einfach der Druck in einem String

+0

'Positionen' ist nicht definiert, was ist das? –

+0

Erklären Sie besser bitte, möchten Sie ausgeben: "Dies ist nicht Howr benötigt und es stimmt nicht richtig :(" und "1 2 3 4 1 2 3 4 5 6 7 2 8 6 3 9 10"? –

+0

Wenn das Segment ist ran der Code spuckt die Wörter auf einer neuen Zeile aus Ich brauche es in einer Variablen zu sein, um auf eine einzige Zeile zu drucken – Oliver

Antwort

1
sentence = " ".join([words[i-1] for i in positions]) #? 

Ausbeuten gespeichert werden:

‚ist dies nicht howr dies erforderlich ist, und es ist falsch und nicht richtig: (

+0

vergessen, dies zu erwähnen, ist Python 3 – Oliver

+1

OP zählt Positionen von 1, so sollte es 'Wörter [i-1]' –

+0

sein Danke, behoben. – AShelly

0

@ AShellys Antwort ist die ideale Lösung, aber wenn Sie die Schleife dann lieber verwenden würden Sie können die folgenden verwendet werden:

positions = [1, 2, 3, 4, 1, 2, 5, 6, 7, 2, 8, 6, 3, 9, 10] 
words = ['this', 'is', 'not', 'howr', 'needed', 'and', 'it', 'wrong', 'right', ':('] 
for i in positions: 
    print(words[i-1], end = ' ') 

Die benannten Parameter des Druckes (end = ' ') bedeutet, dass die print Anweisung mit einem ' ' enden wird statt der üblichen '\n'.

Verwandte Themen