无法在if语句内附加python数组

时间:2019-01-28 14:04:07

标签: python arrays function append

我正在尝试创建一个函数,如果某些条件为true,该函数将在数组中添加几个整数,但是我的函数始终返回空数组。我在条件验证后尝试打印整数,并且确实打印了整数,所以我想我把它们附加错了。我在这里做什么错了?

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))

谢谢

1 个答案:

答案 0 :(得分:1)

这是由于numpy.append()的工作方式。从文档中引用,该方法返回 arr的副本,其值附加到axis。请注意,append不会就地发生:分配并填充了一个新数组。

该方法返回const actionTextFormatter = props => { const content = <i className="material-icons" style={{cursor: 'pointer'}} onClick={this.props.handleSolveClick}>done</i> return content; } const ActionTextTypeProvider = (props) => ( <DataTypeProvider formatterComponent={actionTextFormatter} {...props} /> ); export default class ChildComponent extends React.Component { constructor(props) { super(props); } render() { const { rows, columns } = this.props; return ( <Paper> <Grid rows={rows} columns={columns} > <ActionTextTypeProvider for={['action']} /> <Table /> </Grid> </Paper> ); } } ,并且每次调用ans都会返回一个新数组,而不是修改变量np.append()本身,您将获得原始值[[0,0 ]]。