Skip to main content
 首页 » 编程设计

python之如何从字符串列表中提取数字

2025年05月04日20insus

我应该如何只从中提取数字

a = ['1 2 3', '4 5 6', 'invalid'] 

我试过:

mynewlist = [s for s in a if s.isdigit()] 
print mynewlist 

和

for strn in a: 
    values = map(float, strn.split()) 
print values 

都失败了,因为数字之间有一个空格。

注意:我正在尝试将输出实现为:

[1, 2, 3, 4, 5, 6] 

请您参考如下方法:

我认为您需要将 list 中的每个项目作为空格上的拆分字符串进行处理。

a = ['1 2 3', '4 5 6', 'invalid'] 
numbers = [] 
for item in a: 
    for subitem in item.split(): 
        if(subitem.isdigit()): 
            numbers.append(subitem) 
print(numbers) 
 
['1', '2', '3', '4', '5', '6'] 

或者在一个整洁的理解中:

[item for subitem in a for item in subitem.split() if item.isdigit()]