某些 variables/equations 对列表有何影响?

How do certain variables/equations affect lists?

def list(a, b):
  for k in range(len(a)):
    a[k] = a[k] + b[len(b)-1-k] 
  return a

在处理列表时,python 如何逐行执行这样的函数。具体来说,当我在此代码中看到 len()[k] 时,它如何影响用户呈现的列表?一个例子可能是 当 a = [1,3,5,7,9]b = [1,4,9,8,6] 返回的 (a) 值为 [7, 11, 14, 11, 10] 我不确定这个过程是如何在 Python.

中完成的

I am mostly confused by the introduction of [k] in the equation as I don't know how it changes the list.

someList[k] 是列表第 k 项的 item accessor。因此对于列表 a = [2, 3, 5, 7]a[k] 将 return 第 k 个数字。例如:

>>> a = [2, 3, 5, 7]
>>> a[0]
2
>>> a[1]
3
>>> k = 3
>>> a[k]
7

单独使用访问器只会读取值而不会影响列表。 Python 但是也允许您为其分配一个值。这样做将更改该索引处的列表项:

>>> a = [2, 3, 5, 7]
>>> a[2]
5
>>> a[2] = 13 # we change the value
>>> a[2]
13
>>> a # the original list was modified
[2, 3, 13, 7]

所以在你的循环中,当你有 a[k] = a[k] + something 时,你在第 k 个索引处获取值,向其添加 something,然后更新同一索引处的原始列表。由于函数参数是通过引用传递的,这会更新您的原始列表(您稍后 return 来自您的函数的相同列表对象)。

至于“某事”部分,你是这样做的:b[len(b)-1-k]。同样,您正在使用索引访问列表 b 中的单个项目。但这一次,索引不是常量或单个变量,而是一个更复杂的表达式:len(b) - 1 - klen(b) 将 return 列表的长度 b,因此最终,当您从头遍历 a 列表时,您是从 b结束(假设两个列表的长度相同)。 Python 将首先执行表达式,因此最后它将在该表达式产生的索引处访问 b 的项目。