2017-11-04 47 views
0

分裂值我有字符串列表如下图所示:走出的范围内,同时从名单在Python

12345,abcd,03/03/2013,23,,32,EURRIE-373HFJ-DJDMKD|838383,ldof,09/02/2017,23,,32,DJJFJF-DJFH83-JDUEJD|939393,uejs,08/07/2016,23,,32,JDJFJF-UEJDKD-LEPEKD| 

我的代码:

content = "12345,abcd,03/03/2013,23,,32,EURRIE-373HFJ-DJDMKD|838383,ldof,09/02/2017,23,,32,DJJFJF-DJFH83-JDUEJD|939393,uejs,08/07/2016,23,,32,JDJFJF-UEJDKD-LEPEKD|" 

result = [content.split(',')[2] for content in content.split('|')] 
for v in result[:-1]: 
    print v 

我想打印所有第二个索引元素,它

03/03/2013 
09/02/2017 
08/07/2016 

但是我超出范围错误,我在这里做错了。

有人可以帮助解决这个问题

回答

1

您可以使用re

import re 

content = "12345,abcd,03/03/2013,23,,32,EURRIE-373HFJ-DJDMKD|838383,ldof,09/02/2017,23,,32,DJJFJF-DJFH83-JDUEJD|939393,uejs,08/07/2016,23,,32,JDJFJF-UEJDKD-LEPEKD|" 
result = re.findall('\d{2}/\d{2}/\d{4}', content) 

结果:

for date in result: 
    print date 

# 03/03/2013 
# 09/02/2017 
# 08/07/2016 

您也可以通过过滤掉空元素解决您的代码第一次拆分后:

result = [content.split(',')[2] for content in content.split('|') if len(content)] 

结果:

for v in result: 
    print v 

# 03/03/2013 
# 09/02/2017 
# 08/07/2016 
2

当我测试你的代码,我发现content.split(“|”)是生成一个空的最后一个元素,这是负责分裂之后的索引错误。所以我改变它:

[content.split(',')[2] for content in content.split('|')[:-1]] 

,并得到:

['03/03/2013', '09/02/2017', '08/07/2016'] 

这是否解决问题的吗?