Tor*_*ger 4 python separator partition
str.partition我通过三种方式在代码中使用 Python :
before, __, after = string.partition(sep)
before = string.partition(sep)[0]
after = string.partition(sep)[2]
Run Code Online (Sandbox Code Playgroud)
虽然我str.partition经常使用,但我一直想知道为什么它返回分隔符。第一行肯定会受益于它不返回分隔符,并且在我看来,第三行也会变得更加直观。
虽然我承认可以用以下命令重新构建字符串
"".join(string.partition(sep))
Run Code Online (Sandbox Code Playgroud)
我没有看到任何用例。
那么,在返回的元组中包含分隔符的理由是什么?
在 jonrsharpe 的引导下,我找到了Raymond Hettinger 发来的这封邮件。它解释了基本原理并展示了许多用例。中间值可以用作布尔标志,他们甚至接近称其为“found”而不是“sep”。在他的几乎所有例子中,中间值都没有被忽略,它确实被用作布尔标志(有时也被进一步使用)。“旧模式”是调用find、检查< 0或>= 0,然后有条件地提取部分。新partition功能很好地取代了这种模式。一个典型的例子:
老的:
i = p.find('=')
if i >= 0:
name = p[:i]
value = p[i+1:]
(use name and value)
Run Code Online (Sandbox Code Playgroud)
新的:
name, found, value = p.partition('=')
if found:
(use name and value)
Run Code Online (Sandbox Code Playgroud)