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

如何根据条件从Python列表分割生成嵌套元组列表?

问题描述

现有一个存储字符串的列表,内容如下:

my_list = ['', 
'EU NNP I-NP B-ORG', 
'rejects VBZ I-VP O', 
'British JJ I-NP B-MISC',
'. . O O', 
'', 
'Peter NNP I-NP B-PER', 
'Blackburn NNP I-NP I-PER',
'', 
'BRUSSELS NNP I-NP B-LOC',
'1996-08-22 CD I-NP O', '']

需求为:以列表中的空字符串作为分隔标记,将原列表拆分生成嵌套元组列表。

实现方案

通过单次遍历列表即可完成拆分,逻辑简单效率高,不需要引入额外依赖。

实现代码

list_of_tuples = []
current_group = []

for s in my_list:
    if not s:  # 遇到空字符串分隔符
        if current_group:
            list_of_tuples.append(current_group)
            current_group = []
    else:
        current_group.append((s,))  # 非空内容转单元素元组存入当前分组
# 处理遍历结束后剩余的未收尾分组
if current_group:
    list_of_tuples.append(current_group)

运行上述代码得到的输出为:

[
    [('EU NNP I-NP B-ORG',), ('rejects VBZ I-VP O',), ('British JJ I-NP B-MISC',), ('. . O O',)],
    [('Peter NNP I-NP B-PER',), ('Blackburn NNP I-NP I-PER',)],
    [('BRUSSELS NNP I-NP B-LOC',), ('1996-08-22 CD I-NP O',)]
]

注意事项

  • 单元素元组必须在元素后加逗号,你给出的示例中('xxx')实际是字符串类型,('xxx',)才是合法的单元素元组
  • 作为分隔符的空字符串不会被存入最终结果,示例中最后一个分组包含空串的写法不符合分隔逻辑,上述代码会自动过滤这类分隔符
  • 代码加了非空判断,即使原列表存在连续多个空字符串,也不会生成空的无效分组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:00:56