如何从python脚本中的大字符串中获取特定的字符串值?

时间:2015-04-14 10:12:51

标签: python string

我正在处理python脚本,我有以下内容:

 ['...','name','anbc','date','20/02/2001','path0', 'd://nk/mkn','path1'   
   'k//lk/jjj','path2','f//udfg/jki','path3','hjk//de/lk']

所以,我希望我的输出打印数据:

   path0 d://nk/mkn
   path1 k//lk/jjj
   path2 f//udfg/jki
   path4 hjk//de/lk

那么,我将如何在我的python脚本中获得这样的输出? 请帮助。

2 个答案:

答案 0 :(得分:1)

使用enumeratestartswith功能。只有当第一个元素以字符串path开头时才会打印元素和下一个元素。

>>> l =  ['...','name','anbc','date','20/02/2001','path0', 'd://nk/mkn','path1' ,'k//lk/jjj','path2','f//udfg/jki','path3','hjk//de/lk']
>>> for i,j in enumerate(l):
        if j.startswith('path'):
            print(l[i], l[i+1])


path0 d://nk/mkn
path1 k//lk/jjj
path2 f//udfg/jki
path3 hjk//de/lk
>>> len([i for i in l if i.startswith('path')])
4

答案 1 :(得分:1)

您可以在列表解析中使用zip函数:

>>> l=['...','name','anbc','date','20/02/2001','path0', 'd://nk/mkn','path1'   
...    'k//lk/jjj','path2','f//udfg/jki','path3','hjk//de/lk']

>>> [(i,j) for i,j in zip(l,l[1:]) if i.startswith('path')]
[('path0', 'd://nk/mkn'), ('path1k//lk/jjj', 'path2'), ('path2', 'f//udfg/jki'), ('path3', 'hjk//de/lk')]