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

时间:2015-04-04 21:53:23

标签: python

将Python str.split()str.partition()进行比较,我发现它们不仅具有不同的功能(split()在每次出现分隔符时都会对整个字符串进行标记,而partition() 1}}只返回之前的所有内容以及第一个分隔符出现后的所有内容),但它们也有不同的返回类型。也就是说,str.split()返回liststr.partition()返回tuple。这很重要,因为list是可变的,而tuple则不可变。在API设计中,这个选择背后是否有任何故意的原因,或者它是否只是事物的方式。"我很好奇。

2 个答案:

答案 0 :(得分:10)

这些方法之间的主要区别在于split()返回可变数量的结果,partition()返回固定数字。元组通常不用于返回可变数量项的API。

答案 1 :(得分:2)

@yole答案总结了partition()返回元组的原因。但是有一个很好的方法可以“利用”这一事实。我在“使用Python自动化无聊的东西”中找到了以下示例。

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