KatouMegumiTyan 发表于 2022-4-18 00:55:06

二维列表初始化的一些疑问

24讲中动动手的题目

我的代码:

A = [] * 10
for i in range(10):
    A = * 10

for i in range(10):
    A = 1
    A = 1
for i in range(2,10):
    for j in range(1,i):
      A = A + A
print(A,end = '')

我的初始化过程和小甲鱼答案的初始化过程有什么区别诶,为什么我的代码无法正常运行。报错 IndexError: list assignment index out of range。

# 初始化杨辉三角形
# 创建一个10*10的二维列表,并将所有的元素初始化为0
triangle = []
for i in range(10):
    triangle.append([])
    for j in range(10):
      triangle.append(0)
   

wp231957 发表于 2022-4-18 06:33:46

A = [] * 10是不能这么初始化的,这样得到的是一堆映像体,就是一个改变,都跟着改变

isdkz 发表于 2022-4-18 06:39:33

[] * 10 是将列表里面的元素重复 10 次,

你的列表里面什么也没有 * 10 后还是一个空列表,

你可以这样初始化:

A = [ * 10 for _ in range(10)]

B站在读研究生 发表于 2022-4-18 07:43:41

A = [] * 10不是创建10个列表,初始化还是一个列表
小甲鱼的创建一个列表,在列表里面循环添加列表
页: [1]
查看完整版本: 二维列表初始化的一些疑问