2016-07-31 9 views
1

extrahieren Wenn ich eine Eingabezeichenfolge habe:Wie die Zahlen aus diesem Eingabestring

a = 'W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11' 

Wie die Zahlen und speichern Sie in einer Liste zu extrahieren? Zum Beispiel

numList = [1,2,3,4,5,6,7,8,9,10,11] 

Ich habe versucht, es so zu tun:

[int(t) for t in a if t.isdigit()] 

Dies funktioniert nur für die einstelligen Zahlen, aber für die zweistelligen Zahlen nicht funktioniert.

+0

'importieren re; re.findall (r '\ d +', a)' – rock321987

Antwort

2

Sie können Raum geteilt und dann das erste Zeichen jedes Element in Scheiben schneiden out:

>>> [int(item[1:]) for item in a.split()] 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 

Sie können auch, falls zutreffend (weiß nicht, den Ursprung und die möglichen Variationen der Eingabezeichenfolge) entfernen, nur um die W aus dem String und Split:

>>> a = a.replace("W", "") 
>>> [int(item) for item in a.split()] 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] 
0

du mit regex tun können:

import re 
numList = re.findall(r'\d+', a) 
Verwandte Themen