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

如何向多维列表追加值?解决Python列表索引越界报错

问题描述

我编写了以下Python代码,试图生成指定结构的多维列表:

list=[["Uno","Dos"],[1,2],["Tres","Cuatro"],[3,4]]

print(list)

list[4][0].insert(A)

New_list=[[],[],[],[]]

A=list[0][0]+str(list[1][0])
B=(list[0][0]+str(list[1][0]))[::-1]
C=list[0][1]+str(list[1][1])
D=(list[0][1]+str(list[1][1]))[::-1]
E=list[2][0]+str(list[3][0])
F=(list[2][0]+str(list[3][0]))[::-1]
G=list[2][1]+str(list[3][1])
H=(list[2][1]+str(list[3][1]))[::-1]

New_list[0][0].append(A)

print(New_list)

我的预期输出是:

[["Uno1","1onU"],["Dos2","2soD"],["Tres3","3serT"],["Cuatro4","4ortauC"]]

但我尝试使用append和insert方法时,总是收到报错信息,通常是“list index is out of range”(列表索引越界)。请问我该如何将计算得到的值正确添加到New_list中?


错误分析与解决方法

1. 代码里的核心错误

  • list[4][0].insert(A): 你的list只有4个元素(索引范围0-3),list[4]直接触发索引越界,而且这行代码在变量A定义前调用,完全无意义,直接删除即可。
  • New_list[0][0].append(A): New_list[0]是空列表,不存在New_list[0][0]这个索引,自然会报错。应该直接往New_list[0]这个子列表里追加元素,或者直接赋值构建子列表。

2. 正确实现方式

方法一:直接赋值构建(最直观)

# 避免用list做变量名,覆盖内置类型
original_list = [["Uno","Dos"],[1,2],["Tres","Cuatro"],[3,4]]

A = original_list[0][0] + str(original_list[1][0])
B = A[::-1]
C = original_list[0][1] + str(original_list[1][1])
D = C[::-1]
E = original_list[2][0] + str(original_list[3][0])
F = E[::-1]
G = original_list[2][1] + str(original_list[3][1])
H = G[::-1]

# 直接把计算好的对子作为子列表赋值
New_list = [
    [A, B],
    [C, D],
    [E, F],
    [G, H]
]

print(New_list)

方法二:用append逐步构建

如果想通过append方法来添加元素:

original_list = [["Uno","Dos"],[1,2],["Tres","Cuatro"],[3,4]]
New_list = []

# 第一组
A = original_list[0][0] + str(original_list[1][0])
B = A[::-1]
New_list.append([A, B])

# 第二组
C = original_list[0][1] + str(original_list[1][1])
D = C[::-1]
New_list.append([C, D])

# 第三组
E = original_list[2][0] + str(original_list[3][0])
F = E[::-1]
New_list.append([E, F])

# 第四组
G = original_list[2][1] + str(original_list[3][1])
H = G[::-1]
New_list.append([G, H])

print(New_list)

方法三:循环简化写法(适合数据量较大的情况)

original_list = [["Uno","Dos"],[1,2],["Tres","Cuatro"],[3,4]]
New_list = []

# 按每两组(文字组+数字组)处理
for i in range(0, len(original_list), 2):
    word_group = original_list[i]
    num_group = original_list[i+1]
    # 逐个配对文字和数字
    for word, num in zip(word_group, num_group):
        combined = word + str(num)
        New_list.append([combined, combined[::-1]])

print(New_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:41:27