首页 > 试题广场 >

在python3运行环境下,执行以下选项中的代码,其输出结果

[单选题]

在python3运行环境下,执行以下选项中的代码,其输出结果不为[2,4,6,8,10]的是()

  • a = [1,2,3,4,5,6,7,8,9,10]

    print(a[1::2])

  • a = [1,2,3,4,5,6,7,8,9,10]

    lis = []

    for i in a:

    if i % 2 == 0:
    lis.append(i)

    print(lis)

  • a = [1,2,3,4,5,6,7,8,9,10]

    print(list(filter(lambda x:x % 2 ==0,a)))

  • a = [1,2,3,4,5,6,7,8,9,10]

    def is_odd(n):

    return n % 2 == 0

    print(list(filter(is_odd(),a)))

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_odd(n):
        return n % 2 == 0
print(list(filter(is_odd, a)))
#D错误的原因是因为is_odd加了括号而已,加括号会报错

发表于 2021-12-25 23:59:06 回复(0)
filter(筛选条件)所保留的数据是满足筛选条件的数据。
发表于 2021-12-23 19:40:13 回复(1)
最后一个错误答案有些不严谨,虽然错误点在于(),但是函数名应该为is_even比较合适吧,毕竟是一个找偶数的题目。
发表于 2022-01-27 23:27:05 回复(3)
D错误的原因是因为当函数调用的时候,如果不加括号,返回的结果就是函数体本身,不需要等函数执行完成,如果加了括号,那么函数括号里面就必须要给定调用函数时所需要的参数,很明显,在本题中,D答案中的函数调用 is_add()时候,没有给括号中添加参数,所以会报错
发表于 2022-04-28 15:07:56 回复(1)
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

结合filter函数使用

此时lambda函数用于指定过滤列表元素的条件
关于c选项
发表于 2022-05-06 07:33:37 回复(0)
A 项 print(a[1::2]) 这代表了从索引为1的元素开始,步长为2进行取元素,即从2开始,取2、4、6。。。
D选项正确用法
a = [1,2,3,4,5,6,7,8,9,10] def is_odd(n): return n % 2 == 0  print(list(filter(is_odd,a)))

编辑于 2022-05-05 18:36:43 回复(1)
A选项:表示从1开始,以步长为2开始取元素,最后取到[2,4,6,8,10]
B选项:遍历a列表,把a的每个数取出来除以2余0的就追加在新列表中,最后列表中有[2,4,6,8,10]
C选项:lambda后面跟的是一个函数,计算x除以2是否余数等于0,用一个过滤器filter()留下偶数,迭代对象是a,最后转换成list输出,[2,4,6,8,10]
D选项:is_odd,不带括号,调用整个函数本身,这里需要的就是函数本身
发表于 2022-12-11 10:56:58 回复(0)
filter函数里的is_odd不应该加括号
发表于 2021-12-29 11:42:36 回复(0)
filter() 函数的第一个参数应该是一个函数,而不是函数的调用结果。在代码中,使用了 is_odd(),这是一个函数调用,而不是函数本身。
编辑于 2024-04-01 09:38:18 回复(0)
filter调用函数不需要加上括号。
发表于 2022-08-01 20:37:54 回复(0)
你们理论知识牛逼啊,哪里搞得
发表于 2022-06-14 00:13:47 回复(0)
记录
发表于 2022-11-22 21:07:27 回复(0)
我不理解😳c选项运行结果为[2],而且d选项要写成is_odd才可以,那不应该选c吗?
发表于 2022-08-14 18:48:43 回复(0)