2017-04-10 2 views
0

Entschuldigung, wenn der Titel nicht beschreibend genug ist. Im Grunde habe ich eine Liste wieWort an einer bestimmten Stelle in einer Liste einfügen

["The house is red.", "Yes it is red.", "Very very red."] 

und ich möchte das Wort einfügen "super" vor dem ersten Zeichen, zwischen den mittleren Zeichen und nach dem letzten Zeichen der einzelnen Strings. So würde ich so etwas wie dies für das erste Element hat:

["superThe houssupere is red.super",...] 

Wie würde ich das tun? Ich weiß mit Strings, die ich verwenden könnte, fügen Sie die "super" Zeichenfolge an den Anfang meiner Zeichenfolge dann verwenden Sie len(), um in die Mitte der Zeichenfolge gehen und "super" hinzufügen. Gibt es eine Möglichkeit, dies mit einer Liste zu arbeiten oder sollte ich einen anderen Ansatz ausprobieren?

+1

Willkommen bei SO. Bitte zeigen Sie uns, was Sie bis jetzt versucht haben und was nicht funktioniert (vollständige Fehlermeldung oder das Ergebnis, das Sie erhalten haben, verglichen mit dem, was Sie erwartet haben). Dann können wir Ihnen helfen, Ihr Problem zu lösen! –

+1

'['super {0} super {1} super'.format (i [: len (i) // 2], ich [len (i) // 2:]) für i in li]' ?. Das scheint na ... seltsame Anfrage obwohl. – miradulo

+0

Sie wissen bereits, wie man das mit einer einzigen Saite macht. Nehmen wir an, Sie haben eine Funktion make_super_string (x). Try map (make_super_string, the_list). Im Allgemeinen können Sie die Liste durch Ändern der einzelnen Einträge durchlaufen, oder Sie können eine neue Liste erstellen (und sie optional einfach austauschen, indem Sie sie der gleichen Variablen zuweisen). –

Antwort

0

Die hier verwendete Methode besteht darin, die ursprüngliche Liste zu durchlaufen, jedes Element in zwei Hälften zu zerlegen und die letzte Elementzeichenfolge unter Verwendung von .format zu erstellen, bevor es in eine neue Liste eingefügt wird.

orig_list = ["The house is red.", "Yes it is red.", "Very very red."] 
new_list = [] 
word = 'super' 

for item in orig_list: 
    first_half = item[:len(item) // 2] 
    second_half = item[len(item) // 2:] 
    item = '{}{}{}{}{}'.format(word, first_half, word, second_half, word) 
    new_list.append(item) 
Verwandte Themen