jiangdezhi 发表于 2020-10-28 12:22:13

为什么最后把2插到最后一个数?

a = []
for n in range(2,100):
        for x in range(2,int(n/2+1)):
                if n % x == 0:
                  break
        else:
          a.insert(-1,n)
'为什么最后会把2插入到列表的最后一个数?'

jiangdezhi 发表于 2020-10-28 12:35:17

>>> a

LuLD 发表于 2020-10-28 12:35:25

本帖最后由 LuLD 于 2020-10-28 12:38 编辑

因为 insert(-1,str)
加在了 列表的-1 的位置,那么原本的 -1位置上的 元素就会后移一位

这样看上去就好像是加在了 倒数第二位上

所以 ,在你的列表中添加的第一个数字是 2 ,这样第一个数字就会一直排在最后一位



你可以 再设置一个int 类型的变量,每次添加后,自增1

int i
a.insert(i,n)
i+=1

jiangdezhi 发表于 2020-10-28 12:40:24

LuLD 发表于 2020-10-28 12:35
因为 insert(-1,str)
加在了 列表的-1 的位置,那么原本的 -1位置上的 元素就会后移一位



明白了,感谢!
页: [1]
查看完整版本: 为什么最后把2插到最后一个数?