Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python迭代差异_Python_Iteration - Fatal编程技术网

Python迭代差异

Python迭代差异,python,iteration,Python,Iteration,为什么在Python中会发生这种情况,只调用iterable'(i)' 将打印:3 4 5 但是调用iterable作为(a[i]) 将打印:456 我就是不明白。列表中的第一个元素以0开头 要从列表中获取数字1,您需要执行a[0] 因此,第二种方法是执行i[3],这是4,因为列表索引从0开始。这个过程一直持续到循环结束。在第一个版本中,您正在创建一个范围;您要求的是a[2](即3)和len(a)(即6)之间的整数: 与a的唯一关系是使用a中的值来构建范围。range()为您提供这些数字之间的整

为什么在Python中会发生这种情况,只调用iterable'(i)'

将打印:
3 4 5

但是调用iterable作为(
a[i]

将打印:
456


我就是不明白。列表中的第一个元素以0开头

要从列表中获取数字1,您需要执行
a[0]


因此,第二种方法是执行
i[3]
,这是
4
,因为列表索引从0开始。这个过程一直持续到循环结束。

在第一个版本中,您正在创建一个范围;您要求的是
a[2]
(即
3
)和
len(a)
(即6)之间的整数:

a
的唯一关系是使用
a
中的值来构建范围。
range()
为您提供这些数字之间的整数,包括起始值,因此从3到6(不包括6)计数就是生成数字3、4和5

在第二个示例中,然后使用这些数字索引回
a

请注意,这些索引引用了
a
中的值,这些值碰巧也是整数。每个索引的值与索引不同,索引和值也不同

您的困惑似乎源于这样一个事实:Python列表的索引从0开始,而不是从1开始:

索引0处的值,即
a
中的第一个值,对于范围内的i(a[2],len(a))相当于范围(3,6)中的i的
,因此
i
将依次采用值3、4和5,正如您的第一个结果所确认的那样


对于第二个结果,您将依次打印
a[3]
a[4]
、和
a[5]
,或4、5和6,正如第二个结果所确认的那样。

这是因为索引的编号方式

a = [1, 2, 3, 4, 5, 6]
其中[1]在索引0处,[2]在索引1处,依此类推

在代码的第一部分:

a = [1, 2, 3, 4, 5, 6]

for i in range(a[2], len(a)):
    print(i)
您要求python打印数字,即3、4和5

在代码的第二部分:

for i in range(a[2], len(a)):
    print(a[i])

您要求python打印索引处的值,即4、5和6

,因为
a[2]
a
的第三个元素,从0开始计算。当然,我怎么会错过它,我脑子里的数字太多了,谢谢大家!
>>> a[3]
4
>>> a[4]
5
>>> a[5]
6
>>> a[0]
1
a = [1, 2, 3, 4, 5, 6]
a = [1, 2, 3, 4, 5, 6]

for i in range(a[2], len(a)):
    print(i)
for i in range(a[2], len(a)):
    print(a[i])