首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >映射函数的故障

映射函数的故障
EN

Stack Overflow用户
提问于 2022-05-08 04:57:49
回答 2查看 58关注 0票数 0

我对python非常陌生,我正在处理素数的代码,我创建了一个函数来测试给定的任何正整数上的goldbach猜想,如果这个猜想不适用,返回False,0,0,如果给定的数字遵循goldbach猜想,返回True,p1,p2,例如,goldbach(10)会返回True,3,7,或者goldbach(21)返回True,2,19。

我还创建了一个函数,该函数在给定范围内创建素数列表,是否可以将我的goldbach(n)函数映射到这个已创建的列表,以便它返回一个新列表,其中包含(bool,p1,p2),.,(bool,p1,p2)?如果是这样的话,我将如何编码这个?map()函数甚至是我应该使用的函数吗?我相信我在这里遗漏了一些重要的东西,因为我总是会遇到一个错误:'tuple‘对象是不可调用的。

这是最有可能导致问题的原因:

代码语言:javascript
运行
复制
def goldbachlist(x):
  primes=listofprimes(x)
  gold=list(map(goldbach(x), primes))
  return gold
EN

Stack Overflow用户

回答已采纳

发布于 2022-05-08 05:30:18

我很难从你的规范中创建程序。我不确定您是否已经实现了您没有以与我相同的方式列出的函数,但是我已经在我的机器上测试了这一点,并验证了我得到了您想要的结果。请注意,jwillis0720的post使用了更优雅的列表过滤实践。

代码语言:javascript
运行
复制
def listofprimes(x):
s = []
for i in range(2, x):
    print(i)
    stop = False
    for z in range(1, i):
        if i % z == 0 and z != 1 and z != i:
            stop = True

    if not stop:
        s.append(i)

return s

def goldbach(x):
  primes = listofprimes(x)
  for i in primes:
    for j in primes:
        if i + j == x:
            return (True, i, j)


return (False, 0, 0)

def goldbachlist(x):
 primes = listofprimes(x)
 print(primes)
 gold=list(map(lambda x: goldbach(x), primes))
 finalG = []
 for g in gold:
    if(g[0] == True):
        finalG.append(g)

return finalG;

print(goldbachlist(int(500)))
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72158185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档