Python中的split()方法使用大全

一、基本语法

split()是 Python 中字符串(str)对象的一个非常强大的内置方法,用于将字符串按照指定的分隔符拆分成多个子字符串,并返回一个包含这些子字符串的列表

str.split(sep = None, maxsplit = -1)
text = "a-b-c-d-e-f"
parts = text.split('-', 3)
print(parts)  # 输出: ['a', 'b', 'c', 'd-e-f']

1. sep(可选)

指定用于分割字符串的分隔符。如果未指定,默认使用任何空白字符(如空格、制表符 \t、换行符 等)作为分隔符

2. maxsplit(可选)

指定分割的最大次数。如果提供了该参数,字符串将被分割成 maxsplit + 1 个子字符串。默认值为 -1,表示不限制分割次数,即尽可能多地分割。

二、常见用法示例

1. 使用默认分隔符(空白)

当不指定 sep 参数时,split() 会使用任何空白字符作为分隔符,并自动忽略多余的空格。

text = "Hello World!   How are you?"
words = text.split()
print(words) # ['Hello', 'World!', 'How', 'are', 'you?']

2. 指定分隔符

text = "apple,banana,cherry,dates"
fruits = text.split(',')
print(fruits) # ['apple', 'banana', 'cherry', 'dates']

3. 使用多个字符作为分隔符(结合正则使用)

import re

text = "one--two---three----four"
parts = re.split('--+', text)
print(parts) # ['one', 'two', 'three', 'four']

4. 指定最大分割次数

text = "one two three four five"
parts = text.split(' ', 2)
print(parts) # ['one', 'two', 'three four five']

5. 分割空字符串

# 分割空字符串,不指定分隔符
print("".split())          # 输出: []

# 分割空字符串,指定分隔符
print("".split(','))       # 输出: ['']

# 分割只有一个字符的字符串
print("a".split(','))      # 输出: ['a']

6. 处理连续的分隔符

text = "one,,two,three,,four"
parts = text.split(',')
print(parts) # ['one', '', 'two', 'three', '', 'four']

如果需要忽略连续的分隔符,可以使用正则表达式:

import re

text = "one,,two,three,,four"
parts = re.split(r',+', text)
print(parts) # ['one', 'two', 'three', 'four']

三、高级用法

1. rsplit()

rsplit() 方法与 split() 类似,但从字符串的右侧开始分割。

text = "one two three four"

# 从左侧分割
print(text.split(' ', 2))   # 输出: ['one', 'two', 'three four']

# 从右侧分割
print(text.rsplit(' ', 2))  # 输出: ['one two', 'three', 'four']

2. 分割包含多种分隔符的字符串

使用正则表达式模块 re 可以实现复杂的分隔符分割。

import re

text = "apple;banana, cherry|dates"
parts = re.split(r'[;,|\s]+', text)
print(parts) # ['apple', 'banana', 'cherry', 'dates']

4. 分割多行字符串

splitlines() 方法用于按照行边界拆分多行字符串,而 split('') 也可以实现类似功能,但 splitlines() 更加全面,能够处理不同平台的换行符。

text = "Hello\nWorld\r
Python\rAnother line"

# 使用 split('
')
print(text.split('
'))  # 输出: ['Hello', 'World\r', 'Python\rAnother line']

# 使用 splitlines()
print(text.splitlines())  # 输出: ['Hello', 'World', 'Python', 'Another line']

5. 分隔符在字符串的开头或结尾

如果分隔符出现在字符串的开头或结尾,split() 会在结果中包含空字符串。

text = ",apple,banana,,cherry,"

parts = text.split(',')
print(parts)  # 输出: ['', 'apple', 'banana', '', 'cherry', '']

如果不需要开头和结尾的空字符串,可以结合 strip() 方法使用:

parts = text.strip(',').split(',')
print(parts)  # 输出: ['apple', 'banana', '', 'cherry']

6. 处理Unicode字符

split() 方法同样适用于包含 Unicode 字符的字符串。

text = "你好,世界,Python"
parts = text.split(',')
print(parts)  # 输出: ['你好', '世界', 'Python']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值