一、基础语法
1. JavaScript
str.split(separator, limit)
separator:分隔符(字符串 / 正则)limit:可选,最大分割数量(返回数组最多 limit 个元素)
2. Python
str.split(sep=None, maxsplit=-1)
sep:分隔符(仅字符串,不支持正则)maxsplit:可选,最多分割次数,-1代表全部分割
二、核心区别分点详解
1. 空分隔符 '' 行为完全不同
JS:空字符串分割,拆成单个字符数组
"abc".split('') // ["a","b","c"]
Python:传空字符串直接报错
"abc".split('')
# ValueError: empty separator
# Python 拆字符要用 list("abc")
2. 不传分隔符(空白分割)差异巨大
JS:不传参数,返回完整原字符串数组
"a b c".split() // ["a b c"]
Python:不传 sep /sep=None,自动按任意空白分割(空格、制表、换行,连续空白合并)
"a b c".split() # ['a', 'b', 'c']
3. 末尾空字符串处理
JS:会保留分割后末尾空元素
"1,2,".split(',') // ["1","2",""]
Python:默认自动丢弃末尾空串
"1,2,".split(',') # ['1', '2']
# 想要保留末尾空串用 str.split(',', maxsplit=-1) 无效,得用 re.split
4. 分隔符支持:JS 支持正则,Python 原生不支持
JS 可用正则分割(处理多分隔符、不定空格)
"a,b;c d".split(/[,; ]/) // ["a","b","c","d"]
Python 原生 split 只能传固定字符串,多分隔符必须导入 re
# 原生不行
"a,b;c d".split(",; ") # 匹配完整 ",; " 才分割,失效
# 正则方案
import re
re.split(r'[,; ]', "a,b;c d")
5. 限制分割数量参数逻辑相反
JS 第二个参数 limit:控制返回数组长度
"1,2,3,4".split(',', 2) // ["1","2"] 只取前2个
Python maxsplit:控制分割执行次数
"1,2,3,4".split(',', maxsplit=2) # ['1', '2', '3,4']
# 分割2次,得到3段
6. 全空白字符串处理
JS
" ".split(" ") // ["", "", "", ""]
" ".split() // [" "]
Python
" ".split() # [] 空列表
" ".split(" ") # ['', '', '', '']
7. 分割符不存在时
两者行为一致:返回只含原字符串的数组 / 列表
javascript
"abc".split(",") // ["abc"]
python
"abc".split(",") # ['abc']
三、速记对照表
| 场景 | JavaScript split | Python split |
|---|---|---|
| 不传分隔符 | 不分割,整体返回 | 按任意空白切分 |
分隔符 '' |
拆成字符数组 | 直接报错 |
| 多分隔符 | 直接传正则 | 需 re.split |
| 限制参数 | limit = 返回数组长度 | maxsplit = 分割次数 |
| 尾部空串 | 保留 | 自动舍弃 |
| 纯空白字符串 | split () 返回 [" "] | split () 返回 [] |
四、常用等价写法
- 按任意空白分割
js
运行
// JS 等价 Python split()
str.split(/\s+/)
python
运行
str.split()
- 按字符拆分
js
运行
str.split('')
python
运行
list(str)
- 正则分割多符号
js
运行
str.split(/[,|;]/)
python
运行
import re
re.split(r'[,|;]', str)
