2011-10-23 39 views
1

如何提取字符串中的所有數字?提取字符串中的數字

例如,考慮字符串"66,55,66,57"。我想將每個數字提取到單獨的變量中並執行整數運算。

+0

你是否需要每個數字的顯式變量或者你只是想要求和每個整數?一組數字是否可以(你可以減少它)?如果是這樣,python對所有傳遞字符「」的字符串都有一個拆分方法,它將返回一個由逗號分隔的值的數組。 –

+2

定義「編號」。 –

+0

由數字我的意思是整數..任何方法我得到了所需的答案,謝謝你 – jaganath

回答

8

您可以沿着使用列表理解與str.split分手的字符串,並將其轉換爲整數:

>>> string = "66,55,66,57" 
>>> numbers = [int(x) for x in string.split(",")] 

>>> print numbers 
[66, 55, 66, 57] 

然後,你可以做任何你想要與該名單。例如:

>>> sum(numbers) 
244 
4

如果字符串包含其他分隔符或特殊字符,甚至更早的方法都不適用。 我建議另一種方法:

import re 

s = '123 @, 421, 57&as241' 

result = re.findall(r'[0-9]+', s) 
在結果

: '123', '421', '57', '241']

,如果你願意,你可以將字符串值INT:

result_int = map(int, result) 
0

試試這個:

s = "66,55,66,57" 
its = iter(s) 
ints = [] 
while 1: 
    try: 
     ints.append(int(''.join(takewhile(str.isdigit, its)))) 
    except ValueError: 
     break 

會給你ints整數列表。