2014-12-29 2 views
0

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

['29382 this is something', '2938535 hello there', '392835 dont care for this', '22024811 yup'] 

мне нужно обработать так, чтобы она так:

['29382', '2938535', '392835', '22024811'] 

Как я буду продолжать это делать? Я думаю, я мог бы использовать re, но я не знаю, как применить его в этой ситуации.

+0

StackOverflow вокруг, чтобы помочь вам с вашей реализации. Пожалуйста, покажите нам, что вы пытались сделать, или идеи, которые у вас были, особенно если вы можете включить код. – seebiscuit

ответ

3

Для этого вам не нужно regex, вы можете использовать split в понимании списка.

>>> l = ['29382 this is something', '2938535 hello there', '392835 dont care for this', '22024811 yup'] 

>>> [i.split(' ', 1)[0] for i in l] 
['29382', '2938535', '392835', '22024811'] 
+0

Спасибо за это! Он выполняет эту работу, но я не совсем понимаю, как это работает. – agh

+0

@Michel Что смущает вас, функция 'split' или понимание списка? – CoryKramer

+0

@Cyber ​​Понимание списка – agh

1

Что-то вроде

>>> l=['29382 this is something', '2938535 hello there', '392835 dont care for this', '22024811 yup'] 
>>> import re 
>>> [ re.sub(r'\D', '', x) for x in l] 
['29382', '2938535', '392835', '22024811'] 
Смежные вопросы