Python:为什么str.split()返回一个列表而str.partition()返回一个元组?

8
与Python的str.split()相比,str.partition()不仅具有不同的功能(split()在定界符的每个出现处对整个字符串进行标记化,而partition()仅返回第一个定界符之前和之后的所有内容),而且它们还具有不同的返回类型。也就是说,str.split()返回一个list,而str.partition()返回一个tuple。这很重要,因为list是可变的,而tuple是不可变的。这种API设计的选择背后是否有任何刻意的原因,还是只是"事情的本来面目",我很好奇。
2个回答

12

这些方法的关键区别在于 split() 返回可变数量的结果,而 partition() 返回固定数量的结果。通常不会使用元组来处理返回可变数量项的 API。


非常感谢。作为Python新手,我特别感激关于API中元组返回类型使用的洞察力。 - sparc_spread

2

@yole的回答总结了partition()返回元组的原因。但是有一种很好的方法可以“利用”这个事实。我在《用Python自动化繁琐的工作》中找到了以下示例。

   before, sep, after = 'Hello, world!'.partition(' ')
   print(before)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接