if循环中的Python Filter输出?

时间:2016-03-19 23:17:29

标签: python strip

我收到了以下代码:

def gps():
    print("\t\tGPS information:")
    for tag in tags.keys():
        if 'GPS' in tag:
            print "%s: , %s" % (tag, tags[tag])

当我运行此输出时,我的输出如下:

GPS GPSLatitudeRef: , S
GPS GPSLatitude: , [33, 51, 2191/100]
GPS GPSLongitude: , [151, 13, 1173/100]
GPS GPSVersionID: , [0, 0, 2, 2]

如何过滤文字以删除GPS? 我确实用spitline尝试了它但是不能让它在if循环中工作。

3 个答案:

答案 0 :(得分:1)

如果您的示例输出是输出结果的正确表示。

if 'GPS' in tag:
    print "%s: , %s" % (tag.split(' ')[1], tags[tag])

答案 1 :(得分:1)

更换所有GPS'只需用空字符串替换它,

if 'GPS' in tag:
    print "%s: , %s" % (tag.replace('GPS', ''), tags[tag])

或者,只是第一次出现,

if 'GPS' in tag:
    print "%s: , %s" % (tag.replace('GPS', '', 1), tags[tag])

指定要替换的出现次数(在本例中为1)。或者,像zondo指定的那样,

tag.lstrip('GPS')

<强>更新

要删除开头的空格,可以使用lstrip方法

tag.replace('GPS', '').lstrip()

答案 2 :(得分:1)

也许它不是Python中最方便的解决方案,但您也可以使用正则表达式来进行更复杂的替换:

import re

for tag in tags.keys():
    print "%s: %s" % (re.sub(r'^.*?GPS', '', tag), tags[tag])

(删除第一次GPS出现)。如果您想要从开头删除所有到'GPS'(包括GPS),只需输入:

print "%s: %s" % (re.sub(r'^.*GPS', '', tag), tags[tag])

(删除'?'问号)。但是,对于字符串:

"GPS SomeStringGPS"

结果会得到空字符串,所以要小心。

已编辑:已添加第二个案例。