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

如何拆分嵌套列表第三元素的空格分隔值并生成新列表?

问题解决:提取嵌套列表中的拆分元素

你想要实现的是从嵌套列表里提取每个子列表的第三个元素,按空格拆分后合并成一个扁平化的新列表,这个需求很清晰。咱们先看看你代码里出问题的地方:

错误原因分析

  • 索引使用错误:你写的list[words]是完全错误的——words是循环里拿到的子列表(比如['x','y','a b c']),列表的索引必须是整数,不能用另一个列表当索引,这就是你看到TypeError: list indices must be integers or slices, not list的原因。
  • 变量名不一致:内层循环定义的是palabrasinList,但后面用的是wordsinList,这会导致未定义的变量问题(从报错信息看你可能是拼写时前后不一致)。
  • 内层循环逻辑错误:你内层循环遍历的是子列表的长度(每个子列表长度是3),但其实你需要的是遍历拆分后的第三个元素的单词列表,而不是原列表的长度。

修正后的代码

咱们直接调整逻辑,先遍历每个子列表,取出第三个元素拆分,再把拆分后的每个元素添加到新列表里:

original_list = [['x','y','a b c'], ['x','y','d e f'], ['x','y','g h i']]
words_input = []
for sublist in original_list:
    # 取出每个子列表的第三个元素,按空格拆分
    split_words = sublist[2].split(" ")
    # 遍历拆分后的单词,添加到新列表
    for word in split_words:
        words_input.append(word)
print(words_input)

运行这段代码就能得到你想要的['a','b','c','d','e','f','g','h','i']。

更简洁的写法(列表推导式)

如果想让代码更简洁,可以用Python的列表推导式一行搞定:

original_list = [['x','y','a b c'], ['x','y','d e f'], ['x','y','g h i']]
words_input = [word for sublist in original_list for word in sublist[2].split(" ")]
print(words_input)

这个写法和上面的循环逻辑完全一致,只是更紧凑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:42:14