尿尿地方不可以 发表于 2022-6-10 14:21:32

求助一下为啥输出结果不正确

这是我在codecademy上做的一个题,要求是创建一个function(lst), 参数是由正整数组成的list,检测列表第一个元素,如果是偶数就删掉,直到检测到奇数就return list.

尿尿地方不可以 发表于 2022-6-10 14:24:59

这是我写的答案,思路就是用for循环检测list第一个元素是不是奇数,不是就删掉,如果是就break,跳出循环,return list,但是当参数是的时候我不明白为啥会输出10,按我的思路应该是个空列表

Stubborn 发表于 2022-6-10 14:28:41

本帖最后由 Stubborn 于 2022-6-10 14:32 编辑

能去刷题了, 还犯这种错误,谁教的,让你在一边遍历容器类数据,一边对容器类数据进行增删的。这样改 for num in lst[:]:

    for num in lst[:]:
      if num%2:
            return lst
      else:
            lst.remove(lst)

尿尿地方不可以 发表于 2022-6-10 14:45:19

@Stubborn 我这都是新手题,也是刚入门。我用你的代码结果也不对,直接返回none。我想请问一下我的代码里为什么不能那样对list进行增删呢

尿尿地方不可以 发表于 2022-6-10 14:46:12

尿尿地方不可以 发表于 2022-6-10 14:45
@Stubborn 我这都是新手题,也是刚入门。我用你的代码结果也不对,直接返回none。我想请问一下我的代码里为 ...

for num in lst 和 for num in lst[:]不是一样的吗

wp231957 发表于 2022-6-10 15:01:49

尿尿地方不可以 发表于 2022-6-10 14:46
for num in lst 和 for num in lst[:]不是一样的吗

肯定不一样啊

tiangtian 发表于 2022-6-10 18:55:23

遍历数组不行吧,用while循环 内部判断数组,每次者重新载入数组。试下
我也才学,提供个思路吧

Stubborn 发表于 2022-6-12 09:55:22

尿尿地方不可以 发表于 2022-6-10 14:45
@Stubborn 我这都是新手题,也是刚入门。我用你的代码结果也不对,直接返回none。我想请问一下我的代码里为 ...

在末尾renturn []
页: [1]
查看完整版本: 求助一下为啥输出结果不正确