您的位置:

Python字符串分割函数split使用方法

一、split函数的基本用法

Python中的字符串函数split()可以将字符串按照指定的分割符进行切割,并返回一个由分割后的字符串组成的列表。其基本用法如下:

str.split([sep[, maxsplit]])

其中,参数sep为分割符,默认为所有空字符(包括空格、制表符\t、换行符\n等);参数maxsplit为分割次数,可选,默认为-1,即分割所有分割符。

下面演示一个简单的例子:

text = "apple,banana,orange"
fruits = text.split(",")
print(fruits)  # ["apple", "banana", "orange"]

二、split函数的高级用法

split函数的高级用法是可以指定分割符的数量和位置,同时可以使用正则表达式进行分割。

1. 指定分割符数量和位置

在split()函数的正常用法中,如果指定了maxsplit参数为n,则只会分割n次。有时候我们希望只分割前n-1次,后面所有的字符串都不进行分割,此时可以使用rpartition()函数,该函数从字符串的末尾开始查找分割符,并返回分割符前面的部分、分割符本身和分割符后面的部分。

text = "foo/bar/baz"
a, sep, b = text.partition("/")
print(a, b)  # "foo", "bar/baz"

c, sep, d = b.partition("/")
print(c, d)  # "bar", "baz"

2. 使用正则表达式进行分割

Python的标准模块re可以实现正则表达式操作,可以在分割字符串的时候使用正则表达式来进行更加灵活的控制。

import re

text = "foo  bar\t baz   \tqux"
print(re.split('\s+', text))  # ['foo', 'bar', 'baz', 'qux']

三、注意事项

在使用split()函数时,需要注意以下几个问题:

1. 参数sep和maxsplit的使用

如果不传递sep参数,则会使用所有的空字符作为分割符,如果是按照单个空格进行分割,则应该使用" ",而不是""。

如果传递了maxsplit参数,则函数最多只会进行maxsplit次的分割。需要注意的是,如果maxsplit为0,则函数不会进行任何分割。

2. split()函数不会对原有字符串进行操作

split()函数不会改变原有字符串,而是返回一个新的列表,需要使用变量进行接收。

3. 分割空字符串

如果要分割空字符串,在split()函数中不能使用空字符串作为分割符,可以使用None来指定分割符。

四、总结

Python中的字符串函数split()可以用来将一个字符串按照指定的分割符进行切割,并返回一个由分割后的字符串组成的列表。可以使用sep参数指定分割符,使用maxsplit参数指定分割次数,同时也可以使用正则表达式进行更加灵活的分割。需要注意,函数不会改变原有字符串,分割空字符串时需要使用None来指定分割符。