2017-02-01 2 views
-4

Ich habe eine Liste, die wie folgt aussieht:Wie drucke ich Teile eines Artikels in einer Liste?

['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] 

ich dies zu drucken versuche:

Blake 

Bolt 

De Grasse 

Gatlin 

Simbine 

Youssef Meite 

Wie kann ich über das Schreiben eine Liste Verständnis gehen, die dieses Szenario behandelt? Ich habe versucht, Split und Indizierung, aber nichts, was ich verwendet habe, hat funktioniert. Vielen Dank!

+0

Wow, ich kann nicht glauben, dass Fledermäuse um Hilfe bitten: O –

+0

Ich bin neu in der Codierung und versuche, den Dreh raus zu bekommen: 3 – Batman

Antwort

2

Angenommen, alle Werte zu halten, dass Muster, Split und kommen zurück, letzten Wert in gespaltet Array ignoriert:

l = ['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] 
for x in l: 
    print(' '.join(x.split()[:-1])) 

Andernfalls regex verwenden Ziffern zu beseitigen:

import re 
l = ['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] 
for x in l: 
    print(re.sub(' \d+', '', x)) 
1

Liste Verständnis ist nutzlos Drucken stuff (oder alle Operationen, bei denen Sie den Rückgabewert nicht benötigen).

In Ihrem Fall Sie str.rpartition in einer Schleife verwenden könnten nur die linke Hand des am weitesten rechts stehenden Raum in der Zeichenfolge gefunden zu drucken:

l =['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] 
for s in l: 
    print(s.rpartition(" ")[0]) 

Gerade die letzte Ziffer von der Liste Strippen wäre eine gute Nutzung sein listcomp von:

newl = [s.rpartition(" ")[0] for s in l] 
1

Try this:

l = ['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] 
for i in l: 
    print(i[:-2]) 

Index Das ist ausreichend, um Ihr Problem zu lösen.

Basierend auf @ Jean-François ‚s Kommentar, wenn Sie alle Zeichen vor dem letzten Platz zu entfernen versuchen, können Sie diese stattdessen tun:

l = ['Blake 4', 'Bolt 1', 'De Grasse 3', 'Gatlin 2', 'Simbine 5', 'Youssef Meite 6'] 
for i in l: 
    print(i[:-i[::-1].index(' ')-1]) 
+0

was garantiert, dass die Werte nicht über 9 liegen? –

+0

@ Jean-FrançoisFabre Absolut gültiger Punkt. Aber wir haben nicht genug Informationen darüber, wie die Daten aussehen. Meine Antwort basiert nur auf der von ihm bereitgestellten Beispielliste. –

Verwandte Themen