马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 jialinand 于 2024-3-6 09:35 编辑
AI没有回复正确,有没有大咖帮助解答一下。
阅读下面代码,正确的输出是()
Is = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
for i in range(100):
if i* i in Is:
Is.append(i)
if Is.count(i)== 2:
Is.remove(i)
print(Is)
A. [1, 4, 9]
B. [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1, 2, 3]
C. [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1, 2, 3, 4]
D. [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1, 2, 3]
这道题答案为什么B,i*i,每次运行完,不应该是0,1,4,9,怎么会是1, 2, 3到列表后面去了?
本帖最后由 jackz007 于 2024-3-16 19:06 编辑
在 0~99 范围内,能满足 i * i in ls 的 i 值分别为 1、2、3,对应的 i * i 的值分别为 1、4、9 所以,1、2、3 会被依次添加到 ls 的末尾,这样,ls 中就会出现第二个 1、2、3,于是,执行 ls . remove(i),从中删掉一个,但是,被删掉的是最先索引到的那个,也就是位于列表开头的那一个,而不是被新添加到 ls 末尾的那一个,于是,我们就看到,元素 1、2、3 被从 ls 的开头“搬家”到了 ls 的尾部。所以,答案 B 无疑是正确的。
|