c[a[i]]怎么理解?
a =c = *5
n = len(a)
for i in range(n):
print(c])
问:最后执行结果怎么看?特别是c]的理解 >>> c = *5
>>> c
i 代入数字,走下流程啊
c] = c[ 1 ] =0
c]=c[ 0 ] = 0
这段代码的执行结果将会打印出 c 列表中索引为 1、2、3 的元素的值,因为 a 列表中的元素为 1、2、3,而 c 列表中所有元素都初始化为 0。
在循环中,对于每个索引 i,a 的值会被用作 c 列表的索引。由于 a 列表中的元素是 1、2、3,因此在第一次循环中,c] 将等于 c,这将打印出 c 列表中索引为 1 的元素的值(即 0)。在第二次循环中,c] 将等于 c,这将打印出 c 列表中索引为 2 的元素的值(即 0)。最后一次循环也是同样的情况,将打印 c 列表中索引为 3 的元素的值(即 0)。
值得注意的是,c] 的值只是打印出来并没有被修改,所以 c 列表仍然包含原始的 0 值。 本帖最后由 triell 于 2023-2-23 06:44 编辑
ouyunfu 发表于 2023-2-22 08:53
这段代码的执行结果将会打印出 c 列表中索引为 1、2、3 的元素的值,因为 a 列表中的元素为 1、2、3,而 c...
如果是嵌套加叠加的呢
比如:
a =
b =
c = * 5
n = len(n)
for i in range(1,n+1):
c[ a[ i ] ] += b[ i ] triell 发表于 2023-2-23 06:42
如果是嵌套加叠加的呢
比如:
a =
这可以更好地理解为一个向量加法操作,其中向量a表示要加到c向量上的位置,向量b表示要加到c向量上的值。具体地,向量a和b都可以看作是长度为n的向量,因此向量加法操作可以写成:
c] += b
这个操作将b添加到c],也就是将b添加到c向量的第a个元素上。
如果a和b是嵌套的列表,那么可以将它们展开成向量形式,然后进行相同的向量加法操作。例如,如果a和b是长度为m的列表,其中每个元素都是长度为n的列表,那么可以将它们展开为长度为mn的向量,然后进行相同的向量加法操作。 这段代码定义了一个列表 a,其中包含了三个整数 1、2、3,以及一个长度为 5 的列表 c,其中每个元素都初始化为 0。
然后使用一个 for 循环,枚举列表 a 中的所有元素。在循环的每一次迭代中,取出列表 a 当中的当前元素 a,然后用它作为下标来访问列表 c,即 c]。
这个操作的含义是:将列表 c 中下标为 a 的元素的值打印出来。由于列表 c 当中所有元素都初始化为 0,因此无论 a 的值是多少,c] 都将返回 0。
因此,最后执行结果将会输出三个 0,即:
0
0
0
这是因为列表 a 当中有三个元素,对应的下标分别为 0、1、2,所以循环的每一次迭代中都会访问 c 列表中的 0 号元素。
需要注意的是,如果 a 的值大于等于列表 c 的长度 5,代码将会抛出 IndexError 异常,因为访问了一个不存在的元素。因此,在实际使用中,需要确保 a 列表中的元素都在 c 列表的下标范围内,或者在访问 c 列表元素之前先进行下标范围的检查。
页:
[1]