2017-02-01 3 views
-4

У меня есть список, который выглядит следующим образом:Как распечатать часть элемента в списке?

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

Я пытаюсь напечатать это:

Blake 

Bolt 

De Grasse 

Gatlin 

Simbine 

Youssef Meite 

Как я идти о написании списка понимания, который обрабатывает этот сценарий? Я попытался использовать split и индексирование, но ничего, что я использовал, сработал. Благодаря!

+0

Ничего себе, я не могу поверить, что летучие мыши является прошу о помощи: O –

+0

Я новичок в кодировании и пытаюсь понять его: 3 – Batman

ответ

2

Предполагая, что все значения сохранить этот шаблон, раскол и присоединиться назад, игнорируя последнее значение в расщепленной массиве:

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

В противном случае, используйте регулярное выражение для устранения цифры:

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

список понимание бесполезно до напечатать материал (или любые операции, в которых вам не требуется возвращаемое значение).

В вашем случае, вы можете использовать str.rpartition в цикле печатать только левую руку крайнего правого пространства, найденное в строке:

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

Просто лишив последнюю цифру из списка будет хорошее использованием из listcomp:

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

Попробуйте это:

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

индекс достаточно для решения вашей проблемы.

Основываясь на комментарий @ Жан-Франсуа «s, если вы пытаетесь удалить все символы до последнего места, вы можете сделать это вместо:

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

что гарантирует, что значения не будут выше 9? –

+0

@ Jean-FrançoisFabre Абсолютно действительная точка. Но у нас недостаточно информации о том, как выглядят данные. Мой ответ основан только на примерном списке, который он предоставляет. –