在字符串中查找双空格 - Python

Mar*_*tin 5 python string double find

谁能找到更多Python'ic,更漂亮的解决方案?

我正在循环浏览文件中的一些文本行,以检查它们是否符合某些条件.由于某种原因,我们决定在线内部的分隔符是'',即双倍空间.

如何检查文本字符串以验证所有分隔符是否正好是两个空格?该行末尾的空格不是问题,因为该行最初是.strip()'ed.

我写过这个,它有效 - 但它很难看.代码将显示给一些Python新手,所以我正在寻找更短,更清晰,更美观的解决方案......

ll = ["53.80  64-66-04.630N  52-16-15.355W 25-JUN-1993:16:48:34.00  S10293..  2",
      " 53.80  64-66-04.630N  52-16-15.355W  25-JUN-1993:16:48:34.00  S10293..  2",
      "53.80  64-66-04.630N  52-16-15.355W  25-JUN-1993:16:48:34.00  S10293..  2",
      "  53.80  64-66-04.630N  52-16-15.355W  25-JUN-1993:16:48:34.00  S10293..  2",
      "53.80  64-66-04.630N  52-16-15.355W  25-JUN-1993:16:48:34.00  S10293..  2 ",
      "53.80  64-66-04.630N  52-16-15.355W  25-JUN-1993:16:48:34.00  S10293..  2  ",
      "53.80  64-66-04.630N  52-16-15.355W   25-JUN-1993:16:48:34.00  S10293..  2"]

for ln in ll:
    l = ln.strip()
    bolDS = True
    for n in range(len(l)-1):
        if (n>0 and l[n]==' ' and not ((l[n]==l[n+1])^(l[n]==l[n-1]))):
            bolDS = False

    print "|"+l+"|",bolDS
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 10

def is_doublespace_separated(input_string):
    return '  '.join(input_string.split()) == input_string.strip()
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为string.split会在任何空格上分割你的字符串.并string.join使用分隔符加入列表string.在这种情况下,我们使用分隔符' '(两个空格)重新连接您的字符串,然后将其与剥离的版本进行比较(我感觉您已经知道了哪个条带).

**这将忽略字符串前面和末尾的空格.