|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- gyl =[1,12,3,44,5,26]
- for i in gyl :
- gyl . remove ( min ( gyl ) )
- print ( min ( gyl ) , end = ' ' )
复制代码
【1】i=6 , gyl 内要减去最小的 “1” , 这时 gyl = [ 12 , 3 , 44 , 5 , 26 ] , 打印最小的 “3”
【2】i=5 , gyl 内要减去最小的 “3” , 这时 gyl = [ 12 , 44 , 5 , 26 ] , 打印最小的 “5”
【3】i=4 , gyl 内要减去最小的 “5” , 这时 gyl = [ 12 , 44 , 26 ] , 打印最小的 “12”
【4】i=3 , gyl 内要减去最小的 “12” , 这时 gyl = [ 44 , 26 ] , 打印最小的 “26”
【5】i=2 , gyl 内要减去最小的 “26” , 这时 gyl = [ 44 ] , 打印最小的 “44”
【6】i=1, gyl 内要减去最小的 “44” , 这时 gyl = [ ]
以上是我的理解,可是程序运行结果为 3,5,12 , 为什么 ?
本帖最后由 昨非 于 2021-2-17 20:47 编辑
for i in gyl :这里i的取值应该依次为:1,12,3,44,5,26(如果列表不变的话)
准确的说,i的取值应该是gyl列表中的第1、2、3、4个元素
而不是654321
在你的代码里加上两行:
打印出此次循环时的gyl列表、打印此次循环的i的取值
- gyl =[1,12,3,44,5,26]
- for i in gyl : #这层循环仅限制循环次数
- print('i的值为:',i,'是gyl里第%d个元素'%(gyl.index(i)+1)) #加上这行
- gyl.remove(min(gyl))
- print(gyl) #加上这行
- print('此时最小值为: ',min(gyl))
复制代码
可以看到结果为:
- i的值为: 1 是gyl里第1个元素
- [12, 3, 44, 5, 26]
- 此时最小值为: 3
- i的值为: 3 是gyl里第2个元素
- [12, 44, 5, 26]
- 此时最小值为: 5
- i的值为: 5 是gyl里第3个元素
- [12, 44, 26]
- 此时最小值为: 12
复制代码
也就是打印出3、5、12后,i本应取gyl里的第四个元素
但此时gyl只有[12, 44, 26]三个元素了,所以for循环运行结束了呗
|
|