[1, -13, 9, 6, -21, 125]
它可以通过简单的方式完成:只需迭代切片,如果元素小于零 - >删除它.但由于每一步都可能发生切片变化,因此计算成本很高.
numpy.where(array, condition)numpy.delete
1> Cerise Limón..:
将幸存的元素复制到切片的开头,并在完成后重新生成.
p := []int{1, -13, 9, 6, -21, 125} j := 0 for _, n := range p { if n >= 0 { p[j] = n j++ } } p = p[:j]
没有分配内存,但修改了原始片.如果无法修改原始切片,则分配并复制到新切片:
p := []int{1, -13, 9, 6, -21, 125} j := 0 q := make([]int, len(p)) for _, n := range p { if n >= 0 { q[j] = n j++ } } q = q[:j] // q is copy with numbers >= 0
操场的例子