2017-02-17 55 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]

打印結果