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

如何让嵌套列表的分类预测结果保持原嵌套结构?

如何保持嵌套列表结构的分类结果

现有嵌套列表:

comment = [['a', 'b', 'c'],
           ['d', 'e', 'f', 'g'],
           ['h']]

存在一个classify_predict函数,可将comment中的每个元素分类为0、1或2。当前使用如下代码遍历处理:

class = []

for i in range(0, len(comment))
    for j in range(0, len(comment[i]))
        result = classify_predict(comment[i][j])
        class.append(result)

当前输出结果:得到一维列表,与原嵌套列表结构不匹配:

print(class)

[0, 1, 0, 1, 1, 1, 1, 1]

期望输出结果:得到与原列表结构一致的嵌套分类结果:

print(class)

[[0, 1, 0],
 [1, 1, 1, 1],
 [1]]

解决方案

方法1:修改原有循环逻辑

原代码直接将所有结果追加到同一个列表,导致嵌套结构丢失。需要为每个子列表单独创建结果容器,处理完子列表内所有元素后,再将该容器加入最终结果:

class_result = []  # 避免使用`class`作为变量名,它是Python内置关键字

for sub_list in comment:
    sub_result = []
    for item in sub_list:
        sub_result.append(classify_predict(item))
    class_result.append(sub_result)

方法2:使用列表推导式(更简洁)

利用Python嵌套列表推导式,可一行代码实现结构保留的转换,逻辑与方法1完全一致:

class_result = [[classify_predict(item) for item in sub_list] for sub_list in comment]

执行上述任意一种方法后,打印class_result即可得到与原列表结构匹配的嵌套分类结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:45:32