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

标签 python string find double

谁能找到更 Python 风格、更漂亮的解决方案?

我正在遍历文件中的一些文本行,以检查它们是否满足特定条件。 出于某种原因,决定行内的分隔符是‘’,即双倍空格。

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

我已经写了这个,它有效——但它很丑。 代码将展示给一些 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

最佳答案

def is_doublespace_separated(input_string):
    return '  '.join(input_string.split()) == input_string.strip()

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

**这将忽略字符串前面和结尾的空格。

关于python - 在字符串中查找双空格 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11214074/

相关文章:

python - 打印 str 的转义表示

python - 更改 Firefox 首选项后,Selenium Firefox Webdriver 不会加载空白页面

java - 如何将字符串 "AXA || BXB && CXC || BXB"替换为 "AXA OR BXB && CXC OR BXB"?

c++ - 在 C++ 中查找函数 <algorithm>

python - 如何在不耗尽内存的情况下读取 tsv 文件并将它们存储为 hdf5?

python - 打印字符串时出现 SageMathCell ValueError(有时)

c++ - 为什么 `equal` 在 C++ 中适用于 const char*?

java - 如何拆分没有模式的文本文件

c++ - 在 STL 容器中查找迭代器的索引 - 需要模板函数

javascript - 在jquery中查找远方 parent