「已注销」 2022-05-26 00:02 采纳率: 79.3%
浏览 25
已结题

python关于filter函数的运用

img

问题:使用filter函数筛选列表中的所有非素数,使用内置函数filter()将isPrime函数作用于包含n个整数的列表上,得到一个筛选结果(包含非素数的列表)并输出。
输入用例
[2, 3, 18, 19, 24, 30, 62, 62, 88, 99]
输出用例
[18, 24, 30, 62, 62, 88, 99]

a=input("请输入一个整数:").split(",")
def isPrime(a):
    for i in a:
        for k in (2,int(i)):
            if  i%k==0: 
                b.remove(i)
c=list(filter(isPrime,a))
print(c)                

请问我的代码要怎么修改啊

  • 写回答

1条回答 默认 最新

  • 於黾 2022-05-26 08:08
    关注

    你的a是个input,你怎么把它传进去了
    必须传一个可迭代对象
    而且你输入的是[2, 3, 18, 19, 24, 30, 62, 62, 88, 99]这个格式,直接split肯定是不行的,还要去掉两面的括号
    其实这样写就行了:
    c=list(filter(siPrime,eval(a))))

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月26日
  • 创建了问题 5月26日