关于在Python中填充2D数组的问题

关于在Python中填充2D数组的问题,python,multidimensional-array,Python,Multidimensional Array,我想要的是填充一个3*3的数组。此代码按预期工作: arr = [ [] ] * 3 for i in range(3): arr[i] = (list(map(int, input().split()[:3]))) print(arr) 但如果我这样写: arr = [ [] ] * 3 for i in arr: arr[i] = (list(map(int, input().split()[:3]))) print(arr) [] [] [] 它给出了一个错误:“

我想要的是填充一个3*3的数组。此代码按预期工作:

arr = [ [] ] * 3
for i in range(3): 
    arr[i] = (list(map(int, input().split()[:3])))
print(arr)
但如果我这样写:

arr = [ [] ] * 3
for i in arr: 
    arr[i] = (list(map(int, input().split()[:3])))
print(arr)
[]
[]
[]
它给出了一个错误:“TypeError:列表索引必须是整数或片,而不是列表”


在第二个示例中,我做错了什么?

尝试运行以下代码段:

arr = [ [] ] * 3
    for i in arr: 
        print(i)
结果应该是这样的:

arr = [ [] ] * 3
for i in arr: 
    arr[i] = (list(map(int, input().split()[:3])))
print(arr)
[]
[]
[]
当您尝试将结果分配给
arr[i]
时,实际上您分配给了
arr[[]]
,这会引发错误
TypeError:列表索引必须是整数或片,而不是list
。应使用整数或片访问数组元素。例如
arr[1]
arr[0:3]

代码的解决方案是:

arr = [ [] ] * 3
for i in len(range(3)): 
    arr[i] = (list(map(int, input().split()[:3])))
print(arr)
尝试在for循环中插入
print(i)
,以了解每种情况下
i
的值。