2014-02-10 79 views
-3

我有一个 'NoneType' 的物体,像选择数字:的Python:从NoneType对象

A='ABC:123' 

我想获得一个对象只保留位数:

A2=digitsof(A)='123' 
+9

这不是一个NoneType,这是一个字符串。你到目前为止尝试了什么? – RemcoGerlich

+3

不,你做**不**有'NoneType'对象;你有一个字符串。 –

+3

如果有非连续的数字会发生什么? ''ABC:123:456''? –

回答

1

正则表达式?

>>> from re import sub 
>>> A = 'ABC:123' 
>>> sub(r'\D', '', A) 
123 
+0

**注意:**对问题本身的所有评论都非常正确。这是一个'字符串',而不是'NoneType' – Michael

4

拆分在冒号:

>>> A='ABC:123' 
>>> numA = int(A.split(':')[1]) 
123 
1

如何:

>>> import re 
>>> def digitsof(a): 
...  return [int(x) for x in re.findall('\d+', a) ] 
... 
>>> digitsof('ABC:123') 
[123] 
>>> digitsof('ABC:123,123') 
[123, 123] 
>>> 
0

一个简单的过滤功能

A='ABC:123'  
filter(lambda s: s.isdigit(), A) 
+1

你正在得到ABC,将它改为isdigit() –

+0

你没错,编辑我的答案:) – user2814648

相关问题