2017-02-17 108 views
1

具有含之间有特殊字符值的列表:从列表中提取值,而正则表达式

myLst = ['5-8','20130-23199','1025-2737'] 

你如何提取与之间的-的值,而无需使用正则表达式?

我用“正则表达式”解决了这个问题,但它的速度很慢,数量很大。

回答

4

使用str.split

myLst = ['5-8','20130-23199','1025-2737'] 

result = [s.split('-') for s in myLst] 

print(result) 
#[['5', '8'], ['20130', '23199'], ['1025', '2737']] 
0

你可以使用范围()

for i in myLst: 
    tmp = i.split("-") 
    print(list(range(int(tmp[0])+1,int(tmp[1])))) 
0
myLst = ['5-8','20130-23199','1025-2737'] 

结果做到这一点= []

[result.extend([s.split( ' - ')[0],s.split(' - ')[1]])for s in myLst]

打印结果