|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- num = [60,88,90,85,100]
- for a in num :
- num.pop(0)
- print(num)
复制代码
哪个大神能告诉我,为什么该程序列表中有5、6个元素打印3次,7、8个元素打印4次。
为什么不是单个递增,而是每2个元素递增一次,原理是什么呀?
该程序每次循环都会从列表 num 的第一个元素开始,然后弹出(删除并返回)第一个元素。因此,在第一次循环中,列表中的第一个元素 60 会被弹出,然后列表变成 [88,90,85,100],在第二次循环中,列表中的第一个元素变成了 88,以此类推。
由于每次弹出元素后,列表的长度都会减少1,所以在循环进行到一半的时候,每次弹出的元素都会向后移动1个位置。也就是说,当弹出了 60 和 88 两个元素后,列表中的第一个元素变成了 90,从而导致每个元素向后移动了1个位置。因此,打印的次数每隔2个元素就递增了1次。
具体来说,假设列表 num 中有 n 个元素,那么第 i 次循环时,弹出的元素是 num[i-1],因此在剩余元素的基础上,又往后移动了 i-1 个位置。当剩余元素的长度小于等于 i-1 时,就会退出循环。
例如,在列表 [60,88,90,85,100] 中,第1次循环弹出的元素是 60,此时剩余元素是 [88,90,85,100],下一次循环时,弹出的元素是 88,此时剩余元素是 [90,85,100],但是此时要往后移动 1 个位置已经不可能了,因为剩余元素只有3个,而移动1个位置需要4个元素。因此,程序就退出了循环。
所以,程序的输出结果并不是单个递增,而是每隔2个元素递增1次。
如果问题已经解决,请设置最佳答案
|
|