2017-05-02 4 views
1

Letzte Woche Freitag hatte ich die Herausforderung, eine Funktion zu erstellen, die alle geraden Wörter in einem Satz groß schreibt und jedes ungerade Wort innerhalb eines Satzes umkehrt. Ich frage mich, wie ich die gleiche for-Schleife verwenden würde, die ich erstellt habe, um einfach den gesamten Satz umzukehren, ohne etwas zu kapitalisieren.Reverse String-Satz mit For-Schleife?

Hier ist die Funktion, die ich schrieb:

def the_sentence(words): 
sentence = words 
new_sent = sentence.split(" ") 
for x in range(len(new_sent)): 
    if x % 2 == 0 : 
     new_sent[x] = new_sent[x].upper() 

    else: 
     new_sent[x]=new_sent[x][::-1] 
print(new_sent) 

Danke für die Hilfe!

+0

Meinen Sie 'Worte [:: - 1]'? –

+0

Ist das Hausaufgaben? Wenn nicht, warum nicht 'words [:: - 1]'? – ktbiz

+0

Ja, dies ist eine optionale Zuweisung. – HiroshimaBubbleGum

Antwort

2

Sie können das tun, mit name.swapcase(). Lookup die String-Methoden in der Python doc ....

Zum Umkehren der ganze Satz verwenden nur sentence[::-1]

1

Was ' '.join(new_sent[::-1])?

new_sent[::-1] umgekehrte Reihenfolge, ["Hello", "World"] wird ["World", "Hello"]. Und ' '.join() würde eine Liste zu einer Zeichenfolge verketten. Read more here

bearbeiten

' '.join([word[::-1] for word in new_sent[::-1]])

+0

Es tut mir leid, ich hätte klarer sein sollen. Ich möchte, dass sich die Wörter selbst umkehren, nicht nur die Reihenfolge. Beispiel: Eingabe: "Dies ist ein Satz" Ausgabe "ecnetnes a si sihT" – HiroshimaBubbleGum

+0

@ HiroshimaBubbleGum Bearbeitete meine Antwort – user2829759