我列出了如下字符串:
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
但是我超出范围错误,我在这里做错了什么。
有人可以帮助解决此问题吗
答案 0 :(得分:2)
当我测试你的代码时,我发现content.split('|')生成了一个空的最后一个元素,它负责分割后的索引错误。所以我改为:
[content.split(',')[2] for content in content.split('|')[:-1]]
得到了:
['03/03/2013', '09/02/2017', '08/07/2016']
这能为您解决问题吗?
答案 1 :(得分: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