for

2018-08-26  本文已影响8人  老鼠慎言

深层次原因:

当然, python中的\color{red}{for}循环也是可以改变循环次数的,重点在这句话--\color{red}{for}这个迭代器建立的内存索引表指向一个可迭代对象。
我们来看看列表,例如

a= [1,2,3,4]

这个a列表本质上是对a[0],a[1],a[2],a[4]的引用,而又因为列表本身是一个可迭代对象,所以我们改变这个列表(可迭代对象)的内部引用即可

count = 0
for i in a:
   a[1:] = [1]
   count += 1
print(count)

count 的结果为2
而上面的\color{red}{range}我们是没办法对其内部操作的,第一个i是对内存索引表的挨个查找,第二个i是新的对象
而对于列表,我们直接改变了可迭代对象的结构,也就是说内存索引表本身发生了变化

上一篇 下一篇

猜你喜欢

热点阅读