不能在if statement中追加python数组

2024-09-30 22:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个函数,如果某个条件为真,那么它将向数组中添加成对的整数,但我的函数总是返回空数组。我试图在条件被验证后打印整数,但它确实打印了它们,所以我想我把它们追加错了。我做错什么了?在

ans = np.array([[0,0]])
def q6(n):
    for a in range(n):
        for b in range(n):
            if ((a**2+b**2)/(a*b+1))%2 == 0:             
                np.append(ans,[[a,b]], axis=0)     
    return ans
print(q6(10))

谢谢你


Tags: 函数inforifdefnprange整数
1条回答
网友
1楼 · 发布于 2024-09-30 22:28:37

这是由于numpy.append()的工作方式造成的。引用文档,该方法返回一个arr的副本,值附加到axis。注意,append并没有在适当的地方发生:一个新的数组被分配和填充。

由于该方法返回ans,并且每次调用np.append()都会返回一个新数组,而不是修改ans变量本身,因此您将获得原始值[[0,0]]。在

相关问题 更多 >