You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python高效将含短语与单词的列表转为纯单词列表?

高效拆分短语列表为单词列表的Python实现

这是个很常见的文本处理需求,我来给你几个高效的实现方案:

1. 最简洁直观的列表推导式方法

利用Python内置的split()方法(它默认按任意空白字符分割,还会自动过滤空字符串),结合列表推导式可以一行搞定:

list_of_phrases_and_words = ['I am', 'John', 'michael and', 'I am', '16', 'years', 'old']
list_of_words = [word for phrase in list_of_phrases_and_words for word in phrase.split()]

为什么这个方法高效?

  • split()是Python底层用C实现的方法,比纯Python写的循环分割快得多
  • 列表推导式本身也是Python中生成列表的高效方式,语法简洁且执行速度快
  • 自动处理各种空白情况:不管短语里是单个空格、多个连续空格,甚至开头结尾的空格,split()都能正确拆分出干净的单词

2. 超大数据集下的内存优化方案

如果你处理的是非常大的列表(比如百万级别的元素),可以用itertools.chain来避免生成中间子列表,进一步节省内存:

from itertools import chain

list_of_phrases_and_words = ['I am', 'John', 'michael and', 'I am', '16', 'years', 'old']
list_of_words = list(chain.from_iterable(phrase.split() for phrase in list_of_phrases_and_words))

优势说明

chain.from_iterable会直接遍历每个phrase.split()生成的迭代器,把元素逐个拼接起来,不会先把所有子列表都存到内存里,对于超大数据集来说,内存占用会低很多。

注意事项

如果你的短语里有特定的分隔符(比如逗号加空格),可以给split()传参数,比如phrase.split(', '),但要注意:

  • 不要直接用split(' ')(带空格参数),因为这样会保留连续空格产生的空字符串,比如'hello world'.split(' ')会得到['hello', '', '', 'world']
  • 无参数的split()是处理空格分割的最优选择,它会匹配任意空白字符(空格、制表符、换行符等)并过滤空值

内容的提问来源于stack exchange,提问作者idkman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:30:51