相关疑难解决方法(0)

split() 将哪些字符视为空格?

我正在移植一些调用split()字符串的Python 2 代码,所以我需要知道它的确切行为。文档指出,当您不指定sep参数时,“连续空格的运行被视为单个分隔符”。

不幸的是,它没有指定将是哪些字符。有一些明显的竞争者(如空格、制表符和换行符),但 Unicode 包含许多其他候选者。

哪些字符被 视为空格split()

由于答案可能是特定于实现的,我的目标是 CPython。

(注意:我自己研究了这个答案,因为我在任何地方都找不到它,所以我会在这里发布它,希望对其他人有益。)

python cpython python-2.x

14
推荐指数
1
解决办法
1266
查看次数

尽管文档表明它们应该是相同的,但strip()和strip(string.whitespace)给出了不同的结果

我有一个Unicode字符串,在开头和结尾有一些不间断的空格.使用strip()vs. 时我会得到不同的结果strip(string.whitespace).

>>> import string
>>> s5 = u'\xa0\xa0hello\xa0\xa0'
>>> print s5.strip()
hello
>>> print s5.strip(string.whitespace)
  hello  
Run Code Online (Sandbox Code Playgroud)

文档strip()说,"如果省略或None,chars参数默认删除空格." 文档string.whitespace说"包含所有被认为是空格的字符的字符串".

因此,如果string.whitespace包含所有被视为空格的字符,那么为什么结果会有所不同?它与Unicode有关吗?

我使用的是Python 2.7.6

python unicode whitespace strip

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×2

cpython ×1

python-2.x ×1

strip ×1

unicode ×1

whitespace ×1