使用python中的循环访问列表中的索引

时间:2017-11-25 16:54:41

标签: python

我想弄清楚如何解决这个问题。我知道答案,但我无法弄清楚为什么它是正确的。

primes = [2, 3, 5, 7, 11]

执行以下循环后它包含什么内容?

for i in range(2):
     primes[4 - i] = primes[i]
  

回答:2,3,5,3,2

我被困在primes[4 - i]...部分。有人可以解释一下吗?我知道这是指数的位置。

4 个答案:

答案 0 :(得分:2)

<form name="form1"> <input type="password" name="password" required ng-model="user.password" /> <input type="password" name="confirmPassword" required ng-model="user.confirmPassword" compare-to="user.password" /> </form> <div ng-show="form1.comfirmPassword.$error.compareTo"> Error: Password entries must match </div> 为您提供从0到n - 1的数字序列。

如果您在代码中按顺序替换range(n)函数,则基本上可以得到:

range

每次循环时,for i in [0, 1]: primes[4 - i] = primes[i] 将从0开始变得越来越大。 这反过来意味着i将从4开始变小。

  

第一次循环:4 -i = 4 - 0 = 4

     

第二次循环:4 - i = 4 - 1 = 3

     

(等等,如果你的范围值大于2)

4 - i表示您要为索引primes[4 - i] = primes[i]分配存储在索引4 - i的值。

在您的示例中,您的循环实际上是这样做的:

  

第一个循环:primes [4] = primes [0]

     

第二循环:primes [3] = primes [1]

给你目前的结果。

答案 1 :(得分:1)

此代码以反转数组开始,但它会覆盖数组的末尾,因此整体上它只输出回文。

答案 2 :(得分:0)

代码只是用第一个交换最后一个,第二个用第二个交换,依此类推。 直到循环结束

答案 3 :(得分:-1)

使用索引构建数组:

0,1,2,...,n

您可以通过选择其位置来输入每个索引,例如array[2]获取数组的第三个值。

您的代码,如@ script8man解释,选择第4个索引。在range(2)(0,1)中,它将返回第4和第3个索引,该索引将被第i个索引(0,1)覆盖。